private void generateElement(AnnotationModel element, MethodModel m, MultiMap<String, String> metadata) { String name = Dom.convertName(m.getName()); String xmlTokenName = "<" + name + ">"; String[] arguments = m.getArgumentTypes(); String refTypeAsString; if (arguments.length==0) { refTypeAsString = m.getReturnType(); } else { if (arguments.length!=1) { throw new RuntimeException("@Element method cannot have more than 1 argument " + m.getSignature()); } refTypeAsString = arguments[0]; } boolean isCollection = refTypeAsString.startsWith("java.util.List<L"); if (isCollection) { refTypeAsString = refTypeAsString.substring("java.util.List<L".length()); } Boolean isReference = (Boolean) element.getValues().get("reference"); Type refType = context.getTypes().getBy(refTypeAsString); if (refType==null || (isReference!=null && isReference)) { // leaf metadata.add(xmlTokenName, makeCollectionIfNecessary(isCollection, "leaf")); if (isReference!=null && isReference) { metadata.add(xmlTokenName, "reference"); } } else { // node metadata.add(xmlTokenName, makeCollectionIfNecessary(isCollection, refTypeAsString)); } }
private void generateElement(AnnotationModel element, MethodModel m, MultiMap<String, String> metadata) { String name = Dom.convertName(m.getName()); String xmlTokenName = "<" + name + ">"; String[] arguments = m.getArgumentTypes(); String refTypeAsString; if (arguments.length==0) { refTypeAsString = m.getReturnType(); } else { if (arguments.length!=1) { throw new RuntimeException("@Element method cannot have more than 1 argument " + m.getSignature()); } refTypeAsString = arguments[0]; } boolean isCollection = refTypeAsString.startsWith("java.util.List<L"); if (isCollection) { refTypeAsString = refTypeAsString.substring("java.util.List<L".length()); } Boolean isReference = (Boolean) element.getValues().get("reference"); Type refType = context.getTypes().getBy(refTypeAsString); if (refType==null || (isReference!=null && isReference)) { // leaf metadata.add(xmlTokenName, makeCollectionIfNecessary(isCollection, "leaf")); if (isReference!=null && isReference) { metadata.add(xmlTokenName, "reference"); } } else { // node metadata.add(xmlTokenName, makeCollectionIfNecessary(isCollection, refTypeAsString)); } }
String signature = m.getSignature(); String[] arguments = m.getArgumentTypes(); String refTypeAsString; } else { if (arguments.length!=1) { throw new RuntimeException("@Attribute method cannot have more than 1 argument " + m.getSignature());
String signature = m.getSignature(); String[] arguments = m.getArgumentTypes(); String refTypeAsString; } else { if (arguments.length!=1) { throw new RuntimeException("@Attribute method cannot have more than 1 argument " + m.getSignature());