/** * Get an iterator over all known implementations of the class restriction. * * @return List object */ public List<Class<?>> getKnownImplementations() { return ELKIServiceRegistry.findAllImplementations(getRestrictionClass()); } }
private static Class<?> getRestrictionClass(Parameter<?> opt) { return opt instanceof ClassParameter ? ((ClassParameter<?>) opt).getRestrictionClass() // : opt instanceof ClassListParameter ? ((ClassListParameter<?>) opt).getRestrictionClass() // : null; }
/** * Get an iterator over all known implementations of the class restriction. * * @return List object */ public List<Class<?>> getKnownImplementations() { return ELKIServiceRegistry.findAllImplementations(getRestrictionClass()); } }
/** * Get an iterator over all known implementations of the class restriction. * * @return List object */ public List<Class<?>> getKnownImplementations() { return ELKIServiceRegistry.findAllImplementations(getRestrictionClass()); }
@Override public StringBuilder describeValues(StringBuilder info) { if(restrictionClass == null || restrictionClass == Object.class) { return info; } info.append(restrictionClass.isInterface() ? "Implementing " : "Extending ") // .append(restrictionClass.getName()) // .append(FormatUtil.NEWLINE); List<Class<?>> known = getKnownImplementations(); if(!known.isEmpty()) { for(Class<?> c : known) { info.append("->").append(FormatUtil.NONBREAKING_SPACE) // .append(canonicalClassName(c, getRestrictionClass())) // .append(FormatUtil.NEWLINE); } } return info; }
@Override public StringBuilder describeValues(StringBuilder info) { if(restrictionClass == null || restrictionClass == Object.class) { return info; } info.append(restrictionClass.isInterface() ? "Implementing " : "Extending ") // .append(restrictionClass.getName()) // .append(FormatUtil.NEWLINE); List<Class<?>> known = getKnownImplementations(); if(!known.isEmpty()) { for(Class<?> c : known) { info.append("->").append(FormatUtil.NONBREAKING_SPACE) // .append(canonicalClassName(c, getRestrictionClass())) // .append(FormatUtil.NEWLINE); } } return info; }
for(Class<?> c : known) { info.append("->").append(FormatUtil.NONBREAKING_SPACE); info.append(canonicalClassName(c, getRestrictionClass())); info.append(FormatUtil.NEWLINE);
@Override public String getDefaultValueAsString() { return canonicalClassName(getDefaultValue(), getRestrictionClass()); } }
@Override public String getDefaultValueAsString() { return canonicalClassName(getDefaultValue(), getRestrictionClass()); }
@Override public String getValueAsString() { return canonicalClassName(getValue(), getRestrictionClass()); }
@Override public String getValueAsString() { return canonicalClassName(getValue(), getRestrictionClass()); }
@Override public String getDefaultValueAsString() { return canonicalClassName(getDefaultValue(), getRestrictionClass()); }
@Override public String getValueAsString() { return canonicalClassName(getValue(), getRestrictionClass()); }
@Override public Element writeOptionU(Element parent, Parameter<?> firstopt) { assert HTMLUtil.HTML_UL_TAG.equals(parent.getTagName()); Element optli = (Element) parent.appendChild(htmldoc.createElement(HTMLUtil.HTML_LI_TAG)); // option name optli.appendChild(htmldoc.createElement(HTMLUtil.HTML_TT_TAG)).appendChild(htmldoc.createTextNode(// SerializedParameterization.OPTION_PREFIX + firstopt.getOptionID().getName() + " " + firstopt.getSyntax())); // description optli.appendChild(HTMLUtil.appendMultilineText(htmldoc, // htmldoc.createElement(HTMLUtil.HTML_P_TAG), firstopt.getShortDescription())); // class restriction? // was: using getRestrictionClass(oid, firstopt, byopt); Class<?> superclass = getRestrictionClass(firstopt); appendClassRestriction(optli, superclass); // default value? appendDefaultValueIfSet(optli, firstopt); // known values? appendKnownImplementationsIfNonempty(optli, superclass); return optli; }
/** * Get the restriction class of an option. * * @param oid Option ID * @param firstopt Parameter * @param byopt Option to parameter map * @return Restriction class */ private static Class<?> getRestrictionClass(OptionID oid, final Parameter<?> firstopt, Map<OptionID, List<Pair<Parameter<?>, Class<?>>>> byopt) { Class<?> superclass = getRestrictionClass(firstopt); // Also look for more general restrictions: for(Pair<Parameter<?>, Class<?>> clinst : byopt.get(oid)) { if(clinst.getFirst() instanceof ClassParameter) { ClassParameter<?> cls = (ClassParameter<?>) clinst.getFirst(); if(!cls.getRestrictionClass().equals(superclass) && cls.getRestrictionClass().isAssignableFrom(superclass)) { superclass = cls.getRestrictionClass(); } } if(clinst.getFirst() instanceof ClassListParameter) { ClassListParameter<?> cls = (ClassListParameter<?>) clinst.getFirst(); if(!cls.getRestrictionClass().equals(superclass) && cls.getRestrictionClass().isAssignableFrom(superclass)) { superclass = cls.getRestrictionClass(); } } } return superclass; }
/** * Append string containing the default value. * * @param optdd HTML Element * @param par Parameter */ @Override public void appendDefaultValueIfSet(Element optdd, Parameter<?> par) { if(!par.hasDefaultValue()) { // Element p = htmldoc.createElement(HTMLUtil.HTML_P_TAG); // p.appendChild(htmldoc.createTextNode(HEADER_DEFAULT_VALUE)); // p.appendChild(htmldoc.createTextNode(NO_DEFAULT_VALUE)); // optdd.appendChild(p); return; } Element p = htmldoc.createElement(HTMLUtil.HTML_P_TAG); p.appendChild(htmldoc.createTextNode(HEADER_DEFAULT_VALUE)); if(par instanceof ClassParameter<?>) { final ClassParameter<?> cpar = (ClassParameter<?>) par; p.appendChild(linkForClassName(cpar.getDefaultValue(), cpar.getRestrictionClass())); } else if(par instanceof RandomParameter) { p.appendChild(htmldoc.createTextNode(par.getDefaultValue() == RandomFactory.DEFAULT // ? "use global random seed" : par.getDefaultValueAsString())); } else { p.appendChild(htmldoc.createTextNode(par.getDefaultValueAsString())); } optdd.appendChild(p); }
root = ClassTree.build(cp.getKnownImplementations(), cp.getRestrictionClass().getPackage().getName()); button.setText("v");
root = ClassTree.build(cp.getKnownImplementations(), cp.getRestrictionClass().getPackage().getName()); button.setText("v");
@Override public Void writeOptionU(Void parent, Parameter<?> opt) { out.indent(0).append("- `").append(SerializedParameterization.OPTION_PREFIX) // .append(opt.getOptionID().getName()).append(' ').append(opt.getSyntax()) // .append("`").par().indent(2); if(opt.getShortDescription() != null) { out.append(opt.getShortDescription()).lf(); } // class restriction? appendClassRestriction(parent, getRestrictionClass(opt)); // default value appendDefaultValueIfSet(parent, opt); // known values? if(FULL_WIKI_OUTPUT) { appendKnownImplementationsIfNonempty(parent, getRestrictionClass(opt)); } return null; }
@Override public void appendDefaultValueIfSet(Void optdd, Parameter<?> par) { if(!par.hasDefaultValue()) { // out.append(HEADER_DEFAULT_VALUE).append(NO_DEFAULT_VALUE).lf(); return; } out.lf().append(HEADER_DEFAULT_VALUE); if(par instanceof ClassParameter<?>) { final ClassParameter<?> cpar = (ClassParameter<?>) par; javadocLink(out, cpar.getDefaultValue(), cpar.getRestrictionClass(), "").lf(); } else if(par instanceof RandomParameter) { out.append(par.getDefaultValue() == RandomFactory.DEFAULT // ? "use global random seed" : par.getDefaultValueAsString()).lf(); } else { out.append(par.getDefaultValueAsString()).lf(); } }