@Override
  protected SemanticElementRelationship buildMessageModelObject(ClassDef classDef, RawRoot root) {

    SemanticElementRelationship msgElemRel = new SemanticElementRelationship();
    msgElemRel.setName(BuilderUtil.getNameAttribVal(classDef));
    msgElemRel.setDescription(BuilderUtil.getDescriptionAttribVal(classDef));
    msgElemRel.setRule(BuilderUtil.getRuleAttribVal(classDef));
    msgElemRel.setRuleExpressionLanguage(BuilderUtil.getRuleExprAttribVal(classDef));
    msgElemRel.setSourceIsInstance(BuilderUtil.getBooleanAttribVal(classDef, s_srcIsAttrib));
    msgElemRel.setTargetIsInstance(BuilderUtil.getBooleanAttribVal(classDef, s_targetIsAttrib));

    try {
      msgElemRel.setMinOccurs(BuilderUtil.getIntegerAttribVal(classDef, s_minAttrib));
    } catch (NumberFormatException ex) {
      String value = BuilderUtil.getAttribVal(classDef, s_minAttrib);
      Mdmi.INSTANCE
          .logger()
          .loge(
              ex,
              SemanticElementRelationshipBuilder.class.getName()
                  + ": Unable to parse '"
                  + s_minAttrib
                  + "' '"
                  + value
                  + "' as integer.");
    }

    try {
      msgElemRel.setMaxOccurs(BuilderUtil.getIntegerAttribVal(classDef, s_maxAttrib));
    } catch (NumberFormatException ex) {
      String value = BuilderUtil.getAttribVal(classDef, s_maxAttrib);
      Mdmi.INSTANCE
          .logger()
          .loge(
              ex,
              SemanticElementRelationshipBuilder.class.getName()
                  + ": Unable to parse '"
                  + s_maxAttrib
                  + "' '"
                  + value
                  + "' as integer.");
    }

    return msgElemRel;
  }
Beispiel #2
0
 public static int getMapCenterFacing(AIDelegate aiDelegate, CachedUnit unit) {
   double direction = BuilderUtil.getMapCenterDirection(unit.getPos());
   //        System.err.println("direction: " + direction);
   if (direction >= 45 && direction < 135) {
     return FACING_SOUTH;
   }
   if (direction >= 135 && direction < 225) {
     return FACING_WEST;
   }
   if (direction >= 225 && direction < 315) {
     return FACING_NORTH;
   }
   return FACING_EAST;
 }