Examples of DmcUncheckedObject


Examples of org.dmd.dmc.util.DmcUncheckedObject

        baseImports.addImport(schemaPackage + ".generated.dmo." + name + "DataDMO", "Rule parameters object");
       
        StringBuffer categoryInit = new StringBuffer();
       
        for(String cname: categories){
          DmcUncheckedObject category = ruleCategoryDefs.get(cname);
         
          if (category == null){
            ResultException ex = new ResultException("Unknown rule category: " + cname);
            throw(ex);
          }
         
          String categoryID = category.getSV("ruleCategoryID");
          categoryInit.append("            categories.add(" + categoryID + ");\n");
           
          String ruleInterface = category.getSV("ruleInterface");
          baseImports.addImport(ruleInterface, "Required by RuleCategory " + cname);
         
          if (interfaces.length() > 0)
            interfaces.append(", ");
         
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

     * @throws DmcRuleExceptionSet
     */
    public void parseFile(String fileName, boolean isResource) throws ResultException, DmcValueException, DmcRuleExceptionSet {
        boolean           inObject    = false;
        String            attrName    = null;
        DmcUncheckedObject  uco     = null;
        StringBuffer      attrVal     = new StringBuffer();
        String            val         = null;
        // Note: we replace the friggin' windows backslashes with forward slashes
        String            fn          = fileName.replace('\\', '/');
        int          lastLine  = 0;
        LineNumberReader  in      = null;

        // Reset out global exception instance
        exG = null;

        try {
            // BufferedReader in = new BufferedReader(new FileReader(fileName));
         
          if (isResource){
          InputStreamReader isr = new InputStreamReader(getClass().getResourceAsStream(fn));
          in = new LineNumberReader(isr);           
          }
          else
            in = new LineNumberReader(new FileReader(fileName));
// System.out.println("Reading " + fileName);
            String str;
            while ((str = in.readLine()) != null) {
//DebugInfo.debug("Near line: " + in.getLineNumber());
                if (str.startsWith("*") || str.startsWith("//")){
                    // It's a comment, skip it
                }
                else{
                    StringTokenizer t = new StringTokenizer(str);

                    if (t.countTokens() != 0){
                        if (inObject == false){
                            ArrayList<String> al = new ArrayList<String>();
                            // We're starting a new object - these tokens should be the classes
                            while(t.hasMoreTokens()){
                                al.add(t.nextToken().trim());
                            }

                            uco = new DmcUncheckedObject(al,in.getLineNumber());
                            inObject = true;
                            attrName = null;
                        }
                        else{
                            // We have tokens
                            if (str.startsWith(" ")){
                                // Line continuation
                              if (preserveNL.get(attrName) != null)
                                    attrVal.append("\n" + str);
                              else
                                attrVal.append(str);
                            }
                            else{
                                // A new attribute line
                                if (attrName != null){
                                    // Add the current attribute to the object
                                  val = attrVal.toString().trim();
                                 
                                  if (preserveNL.get(attrName) != null)
                                    val = val.replaceAll("\n", "\\\\n");
                                 
                                    uco.addValue(attrName,new String(val));
                                }

                                // Get the new attribute name
                                attrName = t.nextToken().trim();

                                // Wipe the value buffer
                                attrVal.delete(0,attrVal.length());

                                // Reset it with the contents of the current line
                                attrVal.append(str);

                                // Trim the attribute name and leading spaces
                                attrVal.delete(0,attrName.length());
                                if (attrVal.length() == 0){
                                // We have a missing token value
                                ResultException ex = new ResultException();
                                ex.addError("No value for attribute: " + attrName);
                                ex.setLocationInfo(fileName, in.getLineNumber());
                                throw(ex);
                                }
                                while(attrVal.charAt(0) == ' '){
                                    attrVal.delete(0,1);
                                }
                            }
                        }
                    }
                    else{
                        if (uco != null){
                            // We have a blank line which means we've reached the end of an object - pass off
                            // the current object for processing
                            inObject = false;

                            // Tack on the last attribute
                            if (attrName != null){
                                val = attrVal.toString().trim();
                               
                              if (preserveNL.get(attrName) != null)
                                val = val.replaceAll("\n", "\\\\n");
                             
                                uco.addValue(attrName,new String(val));
                            }

                            try{
                              handler.handleObject(uco,fn, in.getLineNumber());
                            }
                            catch(ResultException ex){
//                              DebugInfo.debug(ex.toString());
                             
                              // If this is the first exception, just hang on to it - we may
                              // wind up adding to it later. Otherwise, just append the results
                              // to our existing exception.
                              if (exG == null)
                                exG = ex;
                              else
                                exG.result.addResults(ex.result);
                             
                              if (exG.result.worst() == Result.FATAL){
                                uco = null;
                                break;
                              }
                             
                                if (allowedErrorsV == -1){
                                    // Couldn't care less about errors! Just go merrily on our way.
                                }
                                else if ((allowedErrorsV == 0) && (exG.result.errors() > 0)){
                                    // Couldn't allow errors - let's bail
                                    uco = null;
                                    break;
                                }
                                else if (exG.result.errors() >= allowedErrorsV){
                                    // We've reached the limits of our patience
                                    uco = null;
                                    break;
                                }

                            }

                            // Reset our object and go on for the next one
                            uco = null;
                        }
                    }
                }

                lastLine = in.getLineNumber();
            }
            in.close();
        }
        catch (IOException e) {
          if (exG == null)
            exG = new ResultException();
         
            exG.result.addResult(Result.FATAL,e.toString());
            exG.result.lastResult().moreMessages("Occurred while reading file: " + fileName);
            uco = null;
        }

        if (uco != null){
            // Finish off for the final attribute and object
            if (attrName != null){
                // Add the current attribute to the object
                // System.out.println("Adding *" + attrVal + "*");
                val = new String(attrVal);
               
              if (preserveNL.get(attrName) != null)
                val = val.replaceAll("\n", "\\\\n");
             
                uco.addValue(attrName,val.trim());
            }

            try{
              handler.handleObject(uco,fn,lastLine);
            }
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

  DmcUncheckedObject parseObject(String in) throws ResultException {
    IntegerVar    index       = new IntegerVar(0);
    boolean     wantStartCurly   = true;
    boolean     wantEndCurly     = false;
    String       input       = in.trim();
    DmcUncheckedObject  basic       = new DmcUncheckedObject();
   
    // Reset the result set
    rsG.reset();
   
    for(; index.intValue()<input.length(); index.set(index.intValue()+1)){
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

      if (parsedRules == null)
        parsedRules = new TreeMap<RuleName, DmcUncheckedObject>();
     
      RuleName rn = new RuleName(ruleName);
     
      DmcUncheckedObject existing = parsedRules.get(rn);
     
      if (existing != null){
        ResultException ex = new ResultException();
        ex.addError("Clashing ruleNames: \n\n" + existing.toOIF() + "\n" + uco.toOIF());
        throw(ex);
      }
     
      parsedRules.put(rn, uco);
    }
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

       
        if (rules != null){
          out.write("\n");
      out.write("    // Generated from: " + DebugInfo.getWhereWeAreNow() + "\n");
          while(rules.hasNext()){
        DmcUncheckedObject ruleData = rules.next();
       
//        try {
//          RuleDataDMO rdd = (RuleDataDMO) factory.createObject(ruleData);
//          DebugInfo.debugWithTrace(rdd.toOIF());
//        } catch (DmcValueException e) {
//          // TODO Auto-generated catch block
//          e.printStackTrace();
//        } catch (ClassNotFoundException e) {
//          // TODO Auto-generated catch block
//          e.printStackTrace();
//        }
       
        String dataName   = ruleData.getConstructionClass();
        int dataPos     = dataName.indexOf("Data");
        String ruleClass   = dataName.substring(0, dataPos);
        String ruleName    = ruleData.getSV("ruleName");
       
        out.write("    public final static " + ruleClass + " __" + ruleName + ";\n");
          }
        }
       
        ///////////////////////////////////////////////////////////////////////
        // Static initializer

        writeCommonPart1(out);
       
        // Inside the static initializer
       
        for(AttributeDefinition ad: attributes.values()){
            // _SmAp.put(__jobName.name,__jobName);
      out.write("        _SmAp.put(__" + ad.getName().getNameString() + ".id,__" + ad.getName().getNameString() + ");\n");
    }
       
        for(ClassDefinition cd: classes.values()){
            // _SmAp.put(__jobName.name,__jobName);
      out.write("        _CmAp.put(__" + cd.getName().getNameString() + ".id,__" + cd.getName().getNameString() + ");\n");
    }
       
        out.write(nameBuilders.toString());
       
        for(SliceDefinition slice: sd.getSliceDefList()){
          out.write("\n");
            // _SmAp.put(__jobName.name,__jobName);
          for(AttributeDefinition ad: slice.getSelectAttribute()){
        out.write("        __" + slice.getName().getNameString() + ".addAttributeID(" + ad.getDmdID() + ");\n");
          }
         
      out.write("        _SImAp.put(\"" + slice.getName() + "\",__" + slice.getName().getNameString() + ");\n");
    }
       
        cds = sd.getClassDefList();
    if (cds != null){
      while(cds.hasNext()){
        out.write("\n");
        ClassDefinition cd = cds.next();
       
        String attr = null;
        for (AttributeDefinition ad: cd.getMust()){
          if (ad.getDefinedIn() == cd.getDefinedIn())
            attr = "__" + ad.getName();
          else
            attr = ad.getDefinedIn().getDMSASGName() + ".__" + ad.getName();
          out.write("        __" + cd.getName() + ".addMust(" + attr + ");\n");
        }
       
        for (AttributeDefinition ad: cd.getMay()){
          if (ad.getDefinedIn() == cd.getDefinedIn())
            attr = "__" + ad.getName();
          else
            attr = ad.getDefinedIn().getDMSASGName() + ".__" + ad.getName();
          out.write("        __" + cd.getName() + ".addMay(" + attr + ");\n");
        }
       
      }
      out.write("\n");
     
    }
   
    if (sd.getRuleDefinitionListSize() > 0){
      out.write("        // Generated from: " + DebugInfo.getWhereWeAreNow() + "\n");
      out.write("        // These instantiations are merely meant to ensure that you've overloaded\n");
      out.write("        // the base rule implementations\n");
      for(RuleDefinition rd : sd.getRuleDefinitionList()){
        out.write("        @SuppressWarnings(\"unused\")\n");
        out.write("        " + rd.getName() + " " + rd.getName() + "Instance = new " + rd.getName() + "(new " + rd.getName() + "DataDMO());\n");
      }
    }
   
    rules = sd.getParsedRules();
    if (rules != null){
      out.write("\n");
      PrintfFormat pf = new PrintfFormat("%-28s");
      out.write("        // Generated from: " + DebugInfo.getWhereWeAreNow() + "\n");
      out.write("        try{\n");
     
      while(rules.hasNext()){
        DmcUncheckedObject ruleData = rules.next();

        String dataName   = ruleData.getConstructionClass();
        int dataPos     = dataName.indexOf("Data");
        String ruleClass   = dataName.substring(0, dataPos);
        String ruleName    = ruleData.getSV("ruleName");
       
        out.write("            " + dataName + "DMO _" + ruleName + "Data = new " + dataName + "DMO();\n");
       
        setAttributeValues(out, sm, ruleData, pf);
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

 
    public void getAllMustAndMay(DmcUncheckedObject uco, TreeSet<String> must, TreeSet<String> may, TreeMap<String,DmcUncheckedObject> classDefs) throws ResultException{
      String derivedFrom = uco.getSV("derivedFrom");
  
      if (derivedFrom != null){
        DmcUncheckedObject base = classDefs.get(derivedFrom);
        getAllMustAndMay(base, must, may, classDefs);
      }
     
      NamedStringArray mustAttr = uco.get("must");
      if (mustAttr != null){
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

    ///////////////////////////////////////////////////////////////////////
    // Rule instances
    Iterator<DmcUncheckedObject> rules = sd.getParsedRules();
    if (rules != null){
      while(rules.hasNext()){
        DmcUncheckedObject rule = rules.next();
        ClassDefinition ruleDataCD = sm.isClass(rule.getConstructionClass());
       
        if (ruleDataCD == null){
          ResultException ex = new ResultException();
          ex.addError("Unknown rule data class. For Rule instance: \n" + rule.toOIF());
          throw(ex);
        }
        manager.addImport(ruleDataCD.getDmoImport(), "To instantiate " + rule.getConstructionClass() + " rule data");
        manager.addImport(ruleDataCD.getRuleDefinition().getRuleDefinitionImport(), "To instantiate rules of this type");
       
        ruleDataCD.addImportsForAdditionalAttributes(sm,manager, rule);
      }
    }
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

    TreeMap<String,ClassNode> getHierarchyMETA(Iterator<DmcUncheckedObject> classes) throws ResultException{
      TreeMap<String,ClassNode> sorted = new TreeMap<String, ClassNode>();
      TreeMap<String,ClassNode> hierarchy = new TreeMap<String, ClassNode>();
     
      while(classes.hasNext()){
        DmcUncheckedObject uco = classes.next();
        String name = uco.getSV("name");
        sorted.put(name, new ClassNode(name,uco));
      }
     
      for(ClassNode cn: sorted.values()){
        String derivedFrom = cn.uco.getSV("derivedFrom");
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

    ///////////////////////////////////////////////////////////////////////////
   
  private void setAttributeValuesMETA(BufferedWriter out, DmcUncheckedObject obj, PrintfFormat pf, TreeMap<String,DmcUncheckedObject>  typeDefs, TreeMap<String,DmcUncheckedObject> attributeDefs) throws IOException, ResultException {
    String        attrName  = null;
    String            objName    = null;
    DmcUncheckedObject   attrDef    = null;
    String            typeName    = null;
    DmcUncheckedObject  typeDef     = null;
    boolean        multiValued  = false;
    boolean           isReference = false;
    boolean           isEnumType  = false;
   
    objName = obj.getSV("ruleName") + "Data";
   
    Iterator<String> attributeNames = obj.getAttributeNames();
    while(attributeNames.hasNext()){
      NamedStringArray attr = obj.get(attributeNames.next());
      attrName = attr.getName();
      if (attrName == null){
        DebugInfo.debug("Attr name null");
        continue;
      }
      attrDef  = attributeDefs.get(attrName);
      multiValued = false;
      isReference  = false;
      isEnumType  = false;
     
      if (attrDef == null){
        ResultException ex = new ResultException();
        ex.addError("Unknown attribute: " + attrName);
        ex.result.lastResult().fileName("metaSchema.dms");
        ex.result.lastResult().lineNumber(obj.lineNumber);
        throw(ex);
      }
     
      if (obj.getConstructionClass().equals("InitRuleData")){
        if (attrName.equals("ruleName") || attrName.equals("ruleTitle") || attrName.equals("description") || attrName.equals("applyToClass")){
          // Just keep going
        }
        else{
          formatOtherAttribute(out,pf,typeDefs,attrDef);
          continue;
        }
      }
     
     
      // MULTIVALUED 1
      if (attrDef.getSV("valueType") != null)
        multiValued = true;
     
      typeName = attrDef.getSV("type");
      typeDef = typeDefs.get(typeName);
     
      if (typeDef == null){
        // If this is null, we need to look for an internally generated Reference type
        typeDef = typeDefs.get(typeName + "REF");
        isReference = true;
       
        if (typeDef.getSV("isEnumType") != null)
          isEnumType = true;
      }
     
        StringBuffer   attrNameCapped   = new StringBuffer();
        attrNameCapped.append(attrName);
        attrNameCapped.setCharAt(0,Character.toUpperCase(attrNameCapped.charAt(0)));
     
      if (attrName.equals("type")){
        // The type attribute has to be handled slightly differently than most attributes
        // to adjust for the fact that we create those internal Reference types to handle
        // references to definitions.
        isReference = false;
        isEnumType  = false;
        typeName = obj.getSV("type");
        typeDef = typeDefs.get(typeName);
       
        if (typeDef == null){
          // If this is null, we need to look for an internally generated Reference type
          typeDef = typeDefs.get(typeName + "REF");
          isReference = true;
         
          if (typeDef.getSV("isEnumType") != null)
            isEnumType = true;
        }
       
              out.write("            _" + pf.sprintf(objName));
             
View Full Code Here

Examples of org.dmd.dmc.util.DmcUncheckedObject

  }
 

  private void formatOtherAttribute(BufferedWriter out, PrintfFormat pf, TreeMap<String,DmcUncheckedObject>  typeDefs, DmcUncheckedObject attribute) throws IOException, ResultException{
    String typeName = attribute.getSV("type");
    DmcUncheckedObject type = typeDefs.get(typeName);
    DebugInfo.debug(type.toOIF() + "\n");
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.