private void assertAtLeastOne(final IDescription desc, final String facet) { final IDescription sd = desc.getEnclosingDescription(); if (!(sd instanceof SpeciesDescription)) { return; } for (final IDescription child : ((SpeciesDescription) sd).getBehaviors()) { String s = child.getKeyword(); if (s.equals(STATE) || s.equals(USER_PANEL)) { final IExpression expr = child.getFacets().getExpr(facet); if (expr == null) { continue; } if (IExpressionFactory.TRUE_EXPR.equals(expr)) { return; } } } final String error = "No " + facet + " state defined"; sd.error( error, IGamlIssue.MISSING_DEFINITION, sd.getUnderlyingElement(null), desc.getKeyword(), facet, TRUE); }