Search in sources :

Example 1 with License

use of oms3.annotations.License in project hortonmachine by TheHortonMachine.

the class ModelsSupporter method generateHelp.

public static String generateHelp(Object parent) throws Exception {
    Class<?> moduleClass = parent.getClass();
    StringBuilder sb = new StringBuilder();
    // try with module description
    Description description = moduleClass.getAnnotation(Description.class);
    String descriptionStr = description.value();
    String NEWLINE = "\n";
    if (description != null) {
        sb.append("Description").append(NEWLINE);
        sb.append("-----------").append(NEWLINE);
        sb.append(NEWLINE);
        sb.append(descriptionStr);
        sb.append(NEWLINE);
        sb.append(NEWLINE);
    }
    // general info
    sb.append("General Information").append(NEWLINE);
    sb.append("-------------------").append(NEWLINE);
    sb.append(NEWLINE);
    // general info: status
    Status status = moduleClass.getAnnotation(Status.class);
    if (status != null) {
        sb.append("Module status: " + ModelsSupporter.getStatusString(status.value())).append(NEWLINE);
    }
    // general info: authors
    Author author = moduleClass.getAnnotation(Author.class);
    if (author != null) {
        String authorNameStr = author.name();
        String[] authorNameSplit = authorNameStr.split(",");
        String authorContactStr = author.contact();
        String[] authorContactSplit = authorContactStr.split(",");
        sb.append("Authors").append(NEWLINE);
        for (String authorName : authorNameSplit) {
            sb.append("* ").append(authorName.trim()).append(NEWLINE);
        }
        sb.append(NEWLINE);
        sb.append("Contacts: ").append(NEWLINE);
        for (String authorContact : authorContactSplit) {
            sb.append("* ").append(authorContact.trim()).append(NEWLINE);
        }
        sb.append(NEWLINE);
    }
    // general info: license
    License license = moduleClass.getAnnotation(License.class);
    if (license != null) {
        String licenseStr = license.value();
        sb.append("License: " + licenseStr).append(NEWLINE);
    }
    // general info: keywords
    Keywords keywords = moduleClass.getAnnotation(Keywords.class);
    if (keywords != null) {
        String keywordsStr = keywords.value();
        sb.append("Keywords: " + keywordsStr).append(NEWLINE);
    }
    sb.append(NEWLINE);
    // gather input fields
    Object annotatedObject = moduleClass.newInstance();
    ComponentAccess cA = new ComponentAccess(annotatedObject);
    // parameters
    sb.append("Parameters").append(NEWLINE);
    sb.append("----------").append(NEWLINE);
    sb.append(NEWLINE);
    // parameters: fields
    Collection<Access> inputs = cA.inputs();
    StringBuilder sbTmp = new StringBuilder();
    ModelsSupporter.collectParameters(sbTmp, inputs, "\t");
    String params = sbTmp.toString();
    if (params.trim().length() > 0) {
        sb.append("\tInput Parameters").append(NEWLINE);
        sb.append("\t----------------").append(NEWLINE);
        sb.append(params);
        sb.append(NEWLINE);
    }
    Collection<Access> outputs = cA.outputs();
    sbTmp = new StringBuilder();
    ModelsSupporter.collectParameters(sbTmp, outputs, "\t");
    params = sbTmp.toString();
    if (params.trim().length() > 0) {
        sb.append("\tOutput Parameters").append(NEWLINE);
        sb.append("\t-----------------").append(NEWLINE);
        sb.append(params);
        sb.append(NEWLINE);
    }
    sb.append(NEWLINE);
    return sb.toString();
}
Also used : Status(oms3.annotations.Status) Description(oms3.annotations.Description) Keywords(oms3.annotations.Keywords) License(oms3.annotations.License) Access(oms3.Access) ComponentAccess(oms3.ComponentAccess) ComponentAccess(oms3.ComponentAccess) Author(oms3.annotations.Author)

Example 2 with License

use of oms3.annotations.License in project hortonmachine by TheHortonMachine.

the class SpatialToolboxUtils method collectParameters.

// /**
// * Get the path for a module doc html.
// *
// * @param moduleClassName the name of the module to get the path for.
// * @return the path to the html file.
// * @throws Exception
// */
// public static String getModuleDocumentationPath( String moduleClassName ) throws Exception {
// File configurationsFolder = SpatialToolboxSessionPluginSingleton.getInstance().getConfigurationsFolder();
// File htmlDocsFolder = new File(configurationsFolder, STAGEHTMLDOCS);
// File htmlDocs = new File(htmlDocsFolder, moduleClassName + ".html");
// if (!htmlDocs.exists()) {
// htmlDocs = new File(htmlDocsFolder, "Oms" + moduleClassName + ".html");
// if (!htmlDocs.exists()) {
// return NO_DOCUMENTATION_AVAILABLE;
// }
// }
// return htmlDocs.getAbsolutePath();
// }
// /**
// * Porge the html docs folder.
// *
// * @throws Exception
// */
// public static void cleanModuleDocumentation() throws Exception {
// File configurationsFolder = SpatialToolboxSessionPluginSingleton.getInstance().getConfigurationsFolder();
// File htmlDocsFolder = new File(configurationsFolder, STAGEHTMLDOCS);
// if (htmlDocsFolder.exists()) {
// FileUtilities.deleteFileOrDir(htmlDocsFolder);
// }
// }
// 
// /**
// * Generate the module documentation in the configuration area.
// *
// * @param moduleClassName the class for which to generate the doc.
// * @throws Exception
// */
// @SuppressWarnings("nls")
// public static void generateModuleDocumentation( String moduleClassName ) throws Exception {
// 
// Class< ? > moduleClass = StageModulesManager.getInstance().getModulesClass(moduleClassName);
// 
// StringBuilder sb = new StringBuilder();
// sb.append("<html><body>\n");
// 
// // modules documentation
// Documentation documentation = moduleClass.getAnnotation(Documentation.class);
// String documentationStr = null;
// if (documentation != null) {
// documentationStr = AnnotationUtilities.getLocalizedDocumentation(documentation);
// if (documentationStr.length() == 0) {
// documentationStr = null;
// } else if (documentationStr.equals(" - ")) {
// documentationStr = null;
// }
// }
// if (documentation != null && documentationStr != null) {
// if (documentationStr.endsWith(DOCSSUFFIX)) {
// // have to get the file
// String modulePackage = moduleClassName.substring(0, moduleClassName.lastIndexOf('.'));
// String path = modulePackage.replaceAll("\\.", "/") + "/" + documentationStr;
// InputStream inStream = StageModulesManager.getInstance().getResourceAsStream(path);
// // InputStream inStream = moduleClass.getResourceAsStream(documentationStr);
// if (inStream != null) {
// BufferedReader br = null;
// try {
// br = new BufferedReader(new InputStreamReader(inStream));
// StringBuilder tmpSb = new StringBuilder();
// String line = "";
// while( (line = br.readLine()) != null ) {
// tmpSb.append(line).append(NEWLINE);
// }
// documentationStr = tmpSb.toString();
// } finally {
// if (br != null)
// br.close();
// }
// }
// }
// sb.append("<h2>Description</h2>").append(NEWLINE);
// sb.append(NEWLINE);
// sb.append("<blockquote>");
// sb.append(documentationStr);
// sb.append("</blockquote>");
// sb.append(NEWLINE);
// sb.append(NEWLINE);
// } else {
// // try with module description
// Description description = moduleClass.getAnnotation(Description.class);
// String descriptionStr = AnnotationUtilities.getLocalizedDescription(description);
// if (description != null) {
// sb.append("<h2>Description</h2>").append(NEWLINE);
// sb.append(NEWLINE);
// sb.append("<blockquote>");
// sb.append(descriptionStr);
// sb.append("</blockquote>");
// sb.append(NEWLINE);
// sb.append(NEWLINE);
// }
// }
// // general info
// sb.append("<h2>General Information</h2>").append(NEWLINE);
// sb.append(NEWLINE);
// // general info: status
// Status status = moduleClass.getAnnotation(Status.class);
// if (status != null) {
// sb.append("<blockquote>");
// sb.append("Module status: " + getStatusString(status.value())).append(NEWLINE);
// sb.append("</blockquote>");
// sb.append(NEWLINE);
// }
// 
// // general info: script name
// Name name = moduleClass.getAnnotation(Name.class);
// String nameStr = AnnotationUtilities.getLocalizedName(name);
// if (name != null) {
// sb.append("<blockquote>");
// sb.append(" Name to use in a script: <b>" + nameStr + "</b>").append(NEWLINE);
// sb.append("</blockquote>");
// sb.append(NEWLINE);
// }
// // general info: authors
// Author author = moduleClass.getAnnotation(Author.class);
// if (author != null) {
// String authorNameStr = author.name();
// String[] authorNameSplit = authorNameStr.split(",");
// 
// String authorContactStr = author.contact();
// String[] authorContactSplit = authorContactStr.split(",");
// 
// sb.append("<blockquote>");
// sb.append(" Authors ").append(NEWLINE);
// sb.append(HTMLNEWLINE);
// sb.append("<ul>").append(NEWLINE);
// for( String authorName : authorNameSplit ) {
// sb.append("<li>").append(authorName.trim());
// }
// sb.append("</li>").append(NEWLINE);
// sb.append("</ul>").append(NEWLINE);
// sb.append(NEWLINE);
// sb.append(HTMLNEWLINE);
// sb.append(HTMLNEWLINE);
// // if (authorContactStr.startsWith("http")) {
// // authorContactStr = "<a href=\"" + authorContactStr + "\">" + authorContactStr +
// // "</a>";
// // }
// sb.append(" Contacts: ").append(NEWLINE);
// sb.append(HTMLNEWLINE);
// sb.append("<ul>").append(NEWLINE);
// for( String authorContact : authorContactSplit ) {
// sb.append("<li>").append(authorContact.trim());
// }
// sb.append("</li>").append(NEWLINE);
// sb.append("</ul>").append(NEWLINE);
// sb.append("</blockquote>");
// sb.append(NEWLINE);
// }
// // general info: license
// License license = moduleClass.getAnnotation(License.class);
// if (license != null) {
// String licenseStr = AnnotationUtilities.getLocalizedLicense(license);
// sb.append("<blockquote>");
// sb.append(" License: " + licenseStr).append(NEWLINE);
// sb.append("</blockquote>");
// sb.append(NEWLINE);
// }
// // general info: keywords
// Keywords keywords = moduleClass.getAnnotation(Keywords.class);
// if (keywords != null) {
// String keywordsStr = AnnotationUtilities.getLocalizedKeywords(keywords);
// sb.append("<blockquote>");
// sb.append(" Keywords: " + keywordsStr).append(NEWLINE);
// sb.append("</blockquote>");
// sb.append(NEWLINE);
// }
// sb.append(NEWLINE);
// 
// // gather input fields
// Object annotatedObject = moduleClass.newInstance();
// ComponentAccess cA = new ComponentAccess(annotatedObject);
// 
// // parameters
// sb.append("<h2>Parameters</h2>").append(NEWLINE);
// sb.append(NEWLINE);
// sb.append("<blockquote>");
// // parameters: fields
// Collection<Access> inputs = cA.inputs();
// StringBuilder sbTmp = new StringBuilder();
// collectParameters(sbTmp, inputs);
// toTable(sb, sbTmp, "Input parameters");
// sb.append(NEWLINE);
// Collection<Access> outputs = cA.outputs();
// sbTmp = new StringBuilder();
// collectParameters(sbTmp, outputs);
// toTable(sb, sbTmp, "Output parameters");
// sb.append("</blockquote>");
// sb.append(NEWLINE);
// sb.append(NEWLINE);
// 
// sb.append("</body></html>");
// 
// File configurationsFolder = SpatialToolboxSessionPluginSingleton.getInstance().getConfigurationsFolder();
// File htmlDocsFolder = new File(configurationsFolder, STAGEHTMLDOCS);
// if (!htmlDocsFolder.exists()) {
// if (!htmlDocsFolder.mkdir()) {
// throw new RuntimeException();
// }
// }
// 
// File htmlDocs = new File(htmlDocsFolder, moduleClassName + ".html");
// FileUtilities.writeFile(sb.toString(), htmlDocs);
// }
private static void collectParameters(StringBuilder sbTmp, Collection<Access> accessList) throws Exception {
    for (Access access : accessList) {
        Field field = access.getField();
        String fieldName = field.getName();
        Description descriptionAnnot = field.getAnnotation(Description.class);
        if (fieldName.equals("pm")) {
            // ignore progress monitor
            continue;
        }
        String fieldDescription = " - ";
        if (descriptionAnnot != null) {
            fieldDescription = AnnotationUtilities.getLocalizedDescription(descriptionAnnot);
            if (fieldDescription == null) {
                fieldDescription = " - ";
            }
            Unit unitAnn = field.getAnnotation(Unit.class);
            if (unitAnn != null) {
                fieldDescription = fieldDescription + " [" + unitAnn.value() + "]";
            }
        }
        sbTmp.append("<tr>").append(NEWLINE);
        sbTmp.append("<td width=\"40%\"> <b>").append(fieldName).append("</b> </td><td width=\"60%\"> ");
        sbTmp.append(fieldDescription).append(" </td>").append(NEWLINE);
        sbTmp.append("</tr>").append(NEWLINE);
    }
}
Also used : Field(java.lang.reflect.Field) Description(oms3.annotations.Description) Access(oms3.Access) Unit(oms3.annotations.Unit)

Example 3 with License

use of oms3.annotations.License in project hortonmachine by TheHortonMachine.

the class HortonMachine method main.

public static void main(String[] args) throws IOException {
    HortonMachine hm = HortonMachine.getInstance();
    Set<Entry<String, Class<?>>> cls = hm.moduleName2Class.entrySet();
    for (Entry<String, Class<?>> cl : cls) {
        System.out.println(cl.getValue().getCanonicalName());
    }
    if (true)
        return;
    LinkedHashMap<String, List<ClassField>> moduleName2Fields = hm.moduleName2Fields;
    LinkedHashMap<String, Class<?>> moduleName2Class = hm.moduleName2Class;
    Set<Entry<String, List<ClassField>>> entrySet = moduleName2Fields.entrySet();
    for (Entry<String, List<ClassField>> entry : entrySet) {
        String moduleName = entry.getKey();
        StringBuilder sb = new StringBuilder();
        Class<?> moduleClass = moduleName2Class.get(moduleName);
        Description description = moduleClass.getAnnotation(Description.class);
        sb.append("public static final String " + moduleName.toUpperCase() + "_DESCRIPTION = \"" + description.value() + "\";\n");
        Documentation documentation = moduleClass.getAnnotation(Documentation.class);
        String doc;
        if (documentation == null) {
            doc = "";
        } else {
            doc = documentation.value();
        }
        sb.append("public static final String " + moduleName.toUpperCase() + "_DOCUMENTATION = \"" + doc + "\";\n");
        Keywords keywords = moduleClass.getAnnotation(Keywords.class);
        String k;
        if (keywords == null) {
            k = "";
        } else {
            k = keywords.value();
        }
        sb.append("public static final String " + moduleName.toUpperCase() + "_KEYWORDS = \"" + k + "\";\n");
        Label label = moduleClass.getAnnotation(Label.class);
        String lab;
        if (label == null) {
            lab = "";
        } else {
            lab = label.value();
        }
        sb.append("public static final String " + moduleName.toUpperCase() + "_LABEL = \"" + lab + "\";\n");
        Name name = moduleClass.getAnnotation(Name.class);
        String n;
        if (name == null) {
            n = "";
        } else {
            n = name.value();
        }
        sb.append("public static final String " + moduleName.toUpperCase() + "_NAME = \"" + n + "\";\n");
        Status status = moduleClass.getAnnotation(Status.class);
        // String st = "";
        // switch( status.value() ) {
        // case 5:
        // st = "EXPERIMENTAL";
        // break;
        // case 10:
        // st = "DRAFT";
        // break;
        // case 20:
        // st = "TESTED";
        // break;
        // case 30:
        // st = "VALIDATED";
        // break;
        // case 40:
        // st = "CERTIFIED";
        // break;
        // default:
        // st = "DRAFT";
        // break;
        // }
        sb.append("public static final int " + moduleName.toUpperCase() + "_STATUS = " + status.value() + ";\n");
        License license = moduleClass.getAnnotation(License.class);
        sb.append("public static final String " + moduleName.toUpperCase() + "_LICENSE = \"" + license.value() + "\";\n");
        Author author = moduleClass.getAnnotation(Author.class);
        String authorName = author.name();
        sb.append("public static final String " + moduleName.toUpperCase() + "_AUTHORNAMES = \"" + authorName + "\";\n");
        String authorContact = author.contact();
        sb.append("public static final String " + moduleName.toUpperCase() + "_AUTHORCONTACTS = \"" + authorContact + "\";\n");
        UI ui = moduleClass.getAnnotation(UI.class);
        if (ui != null) {
            sb.append("public static final String " + moduleName.toUpperCase() + "_UI = \"" + ui.value() + "\";\n");
        }
        List<ClassField> value = entry.getValue();
        for (ClassField classField : value) {
            String fieldName = classField.fieldName;
            if (fieldName.equals("pm")) {
                continue;
            }
            String fieldDescription = classField.fieldDescription;
            String str = "public static final String " + moduleName.toUpperCase() + "_" + fieldName + "_DESCRIPTION = \"" + fieldDescription + "\";\n";
            sb.append(str);
        }
        System.out.println(sb.toString());
        System.out.println();
    }
// for( String className : hm.allClasses ) {
// System.out.println(className);
// }
// for( String fieldName : hm.allFields ) {
// System.out.println(fieldName);
// }
}
Also used : Status(oms3.annotations.Status) Description(oms3.annotations.Description) Keywords(oms3.annotations.Keywords) Documentation(oms3.annotations.Documentation) Label(oms3.annotations.Label) License(oms3.annotations.License) Name(oms3.annotations.Name) Entry(java.util.Map.Entry) UI(oms3.annotations.UI) Author(oms3.annotations.Author) ArrayList(java.util.ArrayList) List(java.util.List) ClassField(org.hortonmachine.gears.libs.modules.ClassField)

Example 4 with License

use of oms3.annotations.License in project hortonmachine by TheHortonMachine.

the class WikiModulesCreator method dump.

private static void dump(Map<String, List<ClassField>> modulesMap, Map<String, Class<?>> modulesClassesMap, String imagesBaseurl, String testcasesBaseurl, String testcasesHmBasepackage) throws Exception {
    Set<String> nameSet = modulesClassesMap.keySet();
    for (String moduleName : nameSet) {
        StringBuilder sb = new StringBuilder();
        Class<?> abClass = modulesClassesMap.get(moduleName);
        // summary line
        Description description = abClass.getAnnotation(Description.class);
        String descriptionStr = description.value();
        sb.append("#summary " + descriptionStr);
        sb.append(NEWLINE);
        sb.append(NEWLINE);
        // modules documentation
        sb.append("<h2>Description</h2>").append(NEWLINE);
        sb.append(NEWLINE);
        Documentation documentation = abClass.getAnnotation(Documentation.class);
        if (documentation == null) {
            System.out.println("Jumping " + moduleName);
            continue;
        }
        String documentationStr = documentation.value();
        if (documentationStr.endsWith(DOCSSUFFIX)) {
            // have to get the file
            URL resource = abClass.getResource(documentationStr);
            try {
                File resourceFile = new File(resource.toURI());
                documentationStr = FileUtilities.readFile(resourceFile);
            } catch (Exception e) {
                System.err.println("Error in: " + moduleName);
            }
        }
        sb.append(documentationStr);
        // general info
        sb.append(NEWLINE);
        sb.append(NEWLINE);
        String parentClassStatus = "not defined";
        List<ClassField> fieldsList = modulesMap.get(moduleName);
        if (fieldsList.size() > 0) {
            ClassField tmp = fieldsList.get(0);
            parentClassStatus = tmp.parentClassStatus;
        }
        sb.append("<h2>General Information</h2>").append(NEWLINE);
        sb.append(NEWLINE);
        // general info: status
        sb.append(" Module status: " + parentClassStatus).append(NEWLINE);
        sb.append(NEWLINE);
        // general info: script name
        Name name = abClass.getAnnotation(Name.class);
        if (name != null) {
            String nameStr = name.value();
            sb.append(" Name to use in a script: <b>" + nameStr + "</b>").append(NEWLINE);
            sb.append(NEWLINE);
        }
        // general info: authors
        Author author = abClass.getAnnotation(Author.class);
        if (author != null) {
            String authorNameStr = author.name();
            String authorContactStr = author.contact();
            sb.append(" Authors: " + authorNameStr).append(NEWLINE);
            sb.append(NEWLINE);
            sb.append(" Contacts: " + authorContactStr).append(NEWLINE);
            sb.append(NEWLINE);
        }
        // general info: license
        License license = abClass.getAnnotation(License.class);
        if (license != null) {
            String licenseStr = license.value();
            sb.append(" License: " + licenseStr).append(NEWLINE);
            sb.append(NEWLINE);
        }
        // general info: keywords
        Keywords keywords = abClass.getAnnotation(Keywords.class);
        if (keywords != null) {
            String keywordsStr = keywords.value();
            sb.append(" Keywords: " + keywordsStr).append(NEWLINE);
            sb.append(NEWLINE);
        }
        sb.append(NEWLINE);
        // parameters
        sb.append("<h2>Parameters</h2>").append(NEWLINE);
        sb.append(NEWLINE);
        // parameters: input
        StringBuilder sbTmp = new StringBuilder();
        for (ClassField classField : fieldsList) {
            if (classField.isOut || classField.fieldName.equals("pm")) {
                // ignore progress monitor
                continue;
            }
            Unit unitAnn = abClass.getField(classField.fieldName).getAnnotation(Unit.class);
            String fieldDescription = classField.fieldDescription;
            if (unitAnn != null) {
                fieldDescription = fieldDescription + " [" + unitAnn.value() + "]";
            }
            sbTmp.append("<tr>").append(NEWLINE);
            sbTmp.append("<td width=\"50%\"> <b>").append(classField.fieldName).append("</b> </td><td width=\"50%\"> ");
            sbTmp.append(fieldDescription).append(" </td>").append(NEWLINE);
            sbTmp.append("</tr>").append(NEWLINE);
        }
        toTable(sb, sbTmp, "Input parameters");
        sb.append(NEWLINE);
        // parameters: output data
        sbTmp = new StringBuilder();
        for (ClassField classField : fieldsList) {
            if (classField.isIn) {
                // ignore progress monitor
                continue;
            }
            Unit unitAnn = abClass.getField(classField.fieldName).getAnnotation(Unit.class);
            String fieldDescription = classField.fieldDescription;
            if (unitAnn != null) {
                fieldDescription = fieldDescription + " [" + unitAnn.value() + "]";
            }
            sbTmp.append("<tr>").append(NEWLINE);
            sbTmp.append("<td width=\"50%\"> <b>").append(classField.fieldName).append("</b> </td><td width=\"50%\"> ");
            sbTmp.append(fieldDescription).append(" </td>").append(NEWLINE);
            sbTmp.append("</tr>").append(NEWLINE);
        }
        toTable(sb, sbTmp, "Output parameters");
        sb.append(NEWLINE);
        // example result
        if (imagesBaseurl != null) {
            sb.append("<h2>Example result</h2>").append(NEWLINE);
            sb.append(NEWLINE);
            sb.append("<img src=\"" + imagesBaseurl + moduleName.toLowerCase() + ".png" + "\" alt=\"" + moduleName + "\"/>").append(NEWLINE);
            sb.append("<br>").append(NEWLINE);
        }
        // developer example
        String testName = "Test" + moduleName + ".java";
        String testClassName = testcasesHmBasepackage + "Test" + moduleName;
        boolean doTest = false;
        try {
            Class.forName(testClassName);
            doTest = true;
        } catch (Exception e) {
            // ignore if no testcase
            System.err.println("TESTCASE missign for: " + testName);
        }
        if (doTest) {
            sb.append("<h2>Developer example</h2>").append(NEWLINE);
            sb.append(NEWLINE);
            sb.append("An example usage of the algorithm can be found in the testcases suite: ").append(NEWLINE);
            sb.append("[");
            sb.append(testcasesBaseurl).append(testName);
            sb.append(" ").append(moduleName).append("]");
        }
        FileUtilities.writeFile(sb.toString(), new File(outputWikiFolder, moduleName + ".wiki"));
    }
}
Also used : Description(oms3.annotations.Description) Keywords(oms3.annotations.Keywords) Documentation(oms3.annotations.Documentation) License(oms3.annotations.License) Unit(oms3.annotations.Unit) URL(java.net.URL) Name(oms3.annotations.Name) Author(oms3.annotations.Author) File(java.io.File) ClassField(org.hortonmachine.gears.libs.modules.ClassField)

Example 5 with License

use of oms3.annotations.License in project hortonmachine by TheHortonMachine.

the class Lesto method main.

public static void main(String[] args) throws IOException {
    Lesto hm = Lesto.getInstance();
    Set<Entry<String, Class<?>>> cls = hm.moduleName2Class.entrySet();
    for (Entry<String, Class<?>> cl : cls) {
        System.out.println(cl.getValue().getCanonicalName());
    }
    if (true)
        return;
    LinkedHashMap<String, List<ClassField>> moduleName2Fields = hm.moduleName2Fields;
    LinkedHashMap<String, Class<?>> moduleName2Class = hm.moduleName2Class;
    Set<Entry<String, List<ClassField>>> entrySet = moduleName2Fields.entrySet();
    for (Entry<String, List<ClassField>> entry : entrySet) {
        String moduleName = entry.getKey();
        StringBuilder sb = new StringBuilder();
        Class<?> moduleClass = moduleName2Class.get(moduleName);
        Description description = moduleClass.getAnnotation(Description.class);
        sb.append("public static final String " + moduleName.toUpperCase() + "_DESCRIPTION = \"" + description.value() + "\";\n");
        Documentation documentation = moduleClass.getAnnotation(Documentation.class);
        String doc;
        if (documentation == null) {
            doc = "";
        } else {
            doc = documentation.value();
        }
        sb.append("public static final String " + moduleName.toUpperCase() + "_DOCUMENTATION = \"" + doc + "\";\n");
        Keywords keywords = moduleClass.getAnnotation(Keywords.class);
        String k;
        if (keywords == null) {
            k = "";
        } else {
            k = keywords.value();
        }
        sb.append("public static final String " + moduleName.toUpperCase() + "_KEYWORDS = \"" + k + "\";\n");
        Label label = moduleClass.getAnnotation(Label.class);
        String lab;
        if (label == null) {
            lab = "";
        } else {
            lab = label.value();
        }
        sb.append("public static final String " + moduleName.toUpperCase() + "_LABEL = \"" + lab + "\";\n");
        Name name = moduleClass.getAnnotation(Name.class);
        String n;
        if (name == null) {
            n = "";
        } else {
            n = name.value();
        }
        sb.append("public static final String " + moduleName.toUpperCase() + "_NAME = \"" + n + "\";\n");
        Status status = moduleClass.getAnnotation(Status.class);
        // String st = "";
        // switch( status.value() ) {
        // case 5:
        // st = "EXPERIMENTAL";
        // break;
        // case 10:
        // st = "DRAFT";
        // break;
        // case 20:
        // st = "TESTED";
        // break;
        // case 30:
        // st = "VALIDATED";
        // break;
        // case 40:
        // st = "CERTIFIED";
        // break;
        // default:
        // st = "DRAFT";
        // break;
        // }
        sb.append("public static final int " + moduleName.toUpperCase() + "_STATUS = " + status.value() + ";\n");
        License license = moduleClass.getAnnotation(License.class);
        sb.append("public static final String " + moduleName.toUpperCase() + "_LICENSE = \"" + license.value() + "\";\n");
        Author author = moduleClass.getAnnotation(Author.class);
        String authorName = author.name();
        sb.append("public static final String " + moduleName.toUpperCase() + "_AUTHORNAMES = \"" + authorName + "\";\n");
        String authorContact = author.contact();
        sb.append("public static final String " + moduleName.toUpperCase() + "_AUTHORCONTACTS = \"" + authorContact + "\";\n");
        UI ui = moduleClass.getAnnotation(UI.class);
        if (ui != null) {
            sb.append("public static final String " + moduleName.toUpperCase() + "_UI = \"" + ui.value() + "\";\n");
        }
        List<ClassField> value = entry.getValue();
        for (ClassField classField : value) {
            String fieldName = classField.fieldName;
            if (fieldName.equals("pm")) {
                continue;
            }
            String fieldDescription = classField.fieldDescription;
            String str = "public static final String " + moduleName.toUpperCase() + "_" + fieldName + "_DESCRIPTION = \"" + fieldDescription + "\";\n";
            sb.append(str);
        }
        System.out.println(sb.toString());
        System.out.println();
    }
// for( String className : hm.allClasses ) {
// System.out.println(className);
// }
// for( String fieldName : hm.allFields ) {
// System.out.println(fieldName);
// }
}
Also used : Status(oms3.annotations.Status) Description(oms3.annotations.Description) Keywords(oms3.annotations.Keywords) Documentation(oms3.annotations.Documentation) Label(oms3.annotations.Label) License(oms3.annotations.License) Name(oms3.annotations.Name) Entry(java.util.Map.Entry) UI(oms3.annotations.UI) Author(oms3.annotations.Author) ArrayList(java.util.ArrayList) List(java.util.List) ClassField(org.hortonmachine.gears.libs.modules.ClassField)

Aggregations

Description (oms3.annotations.Description)7 Author (oms3.annotations.Author)6 Keywords (oms3.annotations.Keywords)6 License (oms3.annotations.License)6 Documentation (oms3.annotations.Documentation)5 Name (oms3.annotations.Name)5 Status (oms3.annotations.Status)5 ClassField (org.hortonmachine.gears.libs.modules.ClassField)5 ArrayList (java.util.ArrayList)4 List (java.util.List)4 Entry (java.util.Map.Entry)4 Label (oms3.annotations.Label)4 UI (oms3.annotations.UI)4 Access (oms3.Access)2 Unit (oms3.annotations.Unit)2 File (java.io.File)1 Field (java.lang.reflect.Field)1 URL (java.net.URL)1 ComponentAccess (oms3.ComponentAccess)1