List of usage examples for org.apache.commons.collections15.multimap MultiHashMap entrySet
public Set<Map.Entry<K, Collection<V>>> entrySet()
From source file:org.openanzo.jet.services.ServicesRestListenerTemplate.java
/** * Generate source code/*ww w .j a v a 2s. c o m*/ * @param argument source for template * @return Return generated source */ public String generate(Object argument) { final StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(TEXT_1); stringBuffer.append(TEXT_2); stringBuffer.append("$".toString()); stringBuffer.append(TEXT_3); stringBuffer.append("$".toString()); stringBuffer.append(TEXT_4); stringBuffer.append("$".toString()); stringBuffer.append(TEXT_5); stringBuffer.append("$".toString()); stringBuffer.append(TEXT_6); ServiceWrapper wrapper = (ServiceWrapper) argument; Service service = wrapper.service; stringBuffer.append(TEXT_7); stringBuffer.append(WikiFormatUtils.convertPackageDirectory(wrapper.task.getRestPackage())); stringBuffer.append(TEXT_8); java.util.regex.Pattern objectPattern = java.util.regex.Pattern .compile("^/anzo/([a-zA-Z]*)?((\\((\\?[a-zA-Z]*)\\))?(/(([a-zA-Z]*)))?)?$"); stringBuffer.append(TEXT_9); if (service.getPropertyValue(DC.TITLE) != null) { stringBuffer.append(JastorUtils.getStingValue(service.getPropertyValue(DC.TITLE))); } stringBuffer.append(TEXT_10); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_11); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_12); stringBuffer.append(WikiFormatUtils.convertPackageDirectory(wrapper.task.getStatsPackage())); stringBuffer.append(TEXT_13); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_14); stringBuffer.append(WikiFormatUtils.convertPackageDirectory(wrapper.task.getInterfacePackage())); stringBuffer.append(TEXT_15); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_16); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_17); java.util.HashMap<String, java.util.HashMap<RequestType, java.util.Collection<RestOperation>>> methods = new java.util.HashMap<String, java.util.HashMap<RequestType, java.util.Collection<RestOperation>>>(); java.util.HashSet<String> operationNames = new java.util.HashSet<String>(); for (Operation operation : JastorUtils.sortByTitle(service.getOperation())) { String opTemplate = operation.getRestEndpoint(); java.util.regex.Matcher match = objectPattern.matcher(opTemplate); if (match.matches()) { String method = null; String op = null; if (match.groupCount() > 0 && match.group(1) != null) { method = match.group(1); } if (match.groupCount() > 6 && match.group(6) != null) { op = match.group(6); } if (op != null && !operationNames.contains(op)) { operationNames.add(op); stringBuffer.append(TEXT_18); stringBuffer.append(op); stringBuffer.append(TEXT_19); stringBuffer.append(org.openanzo.rdf.utils.WikiFormatUtils.formatConstantString(op)); stringBuffer.append(TEXT_20); stringBuffer.append(op); stringBuffer.append(TEXT_21); } java.util.HashMap<RequestType, java.util.Collection<RestOperation>> typeMaps = methods .get("METHOD_" + org.openanzo.rdf.utils.WikiFormatUtils.formatConstantString(method)); if (typeMaps == null) { java.util.HashMap<RequestType, java.util.Collection<RestOperation>> maps = new java.util.HashMap<RequestType, java.util.Collection<RestOperation>>(); java.util.Collection<RestOperation> ops = new java.util.TreeSet<RestOperation>(); ops.add(new RestOperation( (op != null) ? op : org.openanzo.rdf.utils.SerializationConstants.NULL_OP, operation, (match.matches() && match.groupCount() > 4 && match.group(4) != null))); maps.put(RequestType.valueOf(operation.getRestType()), ops); stringBuffer.append(TEXT_22); stringBuffer.append(method); stringBuffer.append(TEXT_23); stringBuffer.append(org.openanzo.rdf.utils.WikiFormatUtils.formatConstantString(method)); stringBuffer.append(TEXT_24); stringBuffer.append(method); stringBuffer.append(TEXT_25); methods.put("METHOD_" + org.openanzo.rdf.utils.WikiFormatUtils.formatConstantString(method), maps); } else { java.util.Collection<RestOperation> ops = typeMaps .get(RequestType.valueOf(operation.getRestType())); if (ops == null) { ops = new java.util.TreeSet<RestOperation>(); typeMaps.put(RequestType.valueOf(operation.getRestType()), ops); } ops.add(new RestOperation( (op != null) ? op : org.openanzo.rdf.utils.SerializationConstants.NULL_OP, operation, (match.matches() && match.groupCount() > 4 && match.group(4) != null))); } } else { java.util.HashMap<RequestType, java.util.Collection<RestOperation>> typeMaps = methods .get(SerializationConstants.NULL_OP); if (typeMaps == null) { java.util.HashMap<RequestType, java.util.Collection<RestOperation>> maps = new java.util.HashMap<RequestType, java.util.Collection<RestOperation>>(); java.util.Collection<RestOperation> ops = new java.util.TreeSet<RestOperation>(); ops.add(new RestOperation(SerializationConstants.NULL_OP, operation, (match.matches() && match.groupCount() > 4 && match.group(4) != null))); maps.put(RequestType.valueOf(operation.getRestType()), ops); methods.put(SerializationConstants.NULL_OP, maps); } else { java.util.Collection<RestOperation> ops = typeMaps .get(RequestType.valueOf(operation.getRestType())); if (ops == null) { ops = new java.util.TreeSet<RestOperation>(); typeMaps.put(RequestType.valueOf(operation.getRestType()), ops); } ops.add(new RestOperation(SerializationConstants.NULL_OP, operation, (match.matches() && match.groupCount() > 4 && match.group(4) != null))); } } } stringBuffer.append(TEXT_26); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_27); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_28); stringBuffer.append(WikiFormatUtils.convertPackageDirectory(wrapper.task.getInterfacePackage())); stringBuffer.append(TEXT_29); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_30); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_31); stringBuffer.append(WikiFormatUtils.convertPackageDirectory(wrapper.task.getStatsPackage())); stringBuffer.append(TEXT_32); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_33); MultiHashMap<String, String> methodOps = new MultiHashMap<String, String>(); for (java.util.Map.Entry<String, java.util.HashMap<RequestType, java.util.Collection<RestOperation>>> entry : methods .entrySet()) { for (java.util.Collection<RestOperation> ops : entry.getValue().values()) { for (RestOperation op : ops) { if (!methodOps.containsValue( entry.getKey().equals(SerializationConstants.NULL_OP) ? "SerializationConstants.NULL_OP" : entry.getKey(), (op.operationName != null && !op.operationName.equals(SerializationConstants.NULL_OP)) ? "OP_" + org.openanzo.rdf.utils.WikiFormatUtils .formatConstantString(op.operationName) : "org.openanzo.rdf.utils.SerializationConstants.NULL_OP")) { methodOps.put( entry.getKey().equals(SerializationConstants.NULL_OP) ? "org.openanzo.rdf.utils.SerializationConstants.NULL_OP" : entry.getKey(), (op.operationName != null && !op.operationName.equals(SerializationConstants.NULL_OP)) ? "OP_" + org.openanzo.rdf.utils.WikiFormatUtils .formatConstantString(op.operationName) : "org.openanzo.rdf.utils.SerializationConstants.NULL_OP"); } } } } for (java.util.Map.Entry<String, java.util.Collection<String>> entry : methodOps.entrySet()) { for (String opp : entry.getValue()) { stringBuffer.append(TEXT_34); stringBuffer.append(entry.getKey()); stringBuffer.append(TEXT_35); stringBuffer.append(opp); stringBuffer.append(TEXT_36); } } stringBuffer.append(TEXT_37); stringBuffer.append(WikiFormatUtils.convertPackageDirectory(wrapper.task.getStatsPackage())); stringBuffer.append(TEXT_38); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_39); boolean firstMethod = true; for (String key : methods.keySet()) { boolean firstRequestType = true; java.util.HashMap<RequestType, java.util.Collection<RestOperation>> ops = methods.get(key); stringBuffer.append(TEXT_40); if (!firstMethod) { stringBuffer.append(TEXT_41); } else { stringBuffer.append(TEXT_42); } stringBuffer.append(TEXT_43); if (SerializationConstants.NULL_OP.equals(key)) { stringBuffer.append(TEXT_44); } else { stringBuffer.append(key); stringBuffer.append(TEXT_45); } stringBuffer.append(TEXT_46); for (java.util.Map.Entry<RequestType, java.util.Collection<RestOperation>> entry : ops.entrySet()) { if (!firstRequestType) { stringBuffer.append(TEXT_47); } firstRequestType = false; stringBuffer.append(TEXT_48); stringBuffer.append(entry.getKey()); stringBuffer.append(TEXT_49); boolean firstOp = true; for (RestOperation restOperation : entry.getValue()) { Operation operation = restOperation.operation; Parameter result = null; boolean resultHasDefaultFormat = false; Iterator<Parameter> results = operation.getResult().iterator(); if (results.hasNext()) { result = results.next(); if (result != null) { resultHasDefaultFormat = result.getType().getDefaultJMSFormat() != null || result.getType().getDefaultRestFormat() != null || result.getType().getDefaultWSFormat() != null; } } Parameter parameters[] = new Parameter[8]; String parameterName[] = new String[8]; String javaType[] = new String[8]; String type[] = new String[8]; String defaultValue[] = new String[8]; boolean nullAllowed[] = new boolean[8]; String defaultFormat[] = new String[8]; String serializer[] = new String[8]; int propertyLocation[] = new int[8]; int readerParam = -1; if (operation.getRequestParameter0() != null) { parameters[0] = operation.getRequestParameter0(); } if (operation.getRequestParameter1() != null) { parameters[1] = operation.getRequestParameter1(); } if (operation.getRequestParameter2() != null) { parameters[2] = operation.getRequestParameter2(); } if (operation.getRequestParameter3() != null) { parameters[3] = operation.getRequestParameter3(); } if (operation.getRequestParameter4() != null) { parameters[4] = operation.getRequestParameter4(); } if (operation.getRequestParameter5() != null) { parameters[5] = operation.getRequestParameter5(); } if (operation.getRequestParameter6() != null) { parameters[6] = operation.getRequestParameter6(); } if (operation.getRequestParameter7() != null) { parameters[7] = operation.getRequestParameter7(); } for (int i = 0; i < 8; i++) { if (parameters[i] != null) { parameterName[i] = parameters[i].getName(); if (parameters[i].getType() != null) { type[i] = javaType[i] = parameters[i].getType().getJavaType(); defaultValue[i] = parameters[i].getType().getDefaultValue(); serializer[i] = parameters[i].getType().getSerializer(); String location = parameters[i].getParameterLocation(); if (location == null) { propertyLocation[i] = 0; } else if ("body".equals(location)) { propertyLocation[i] = 1; } else if ("parameter".equals(location)) { propertyLocation[i] = 0; } else if ("transport".equals(location)) { propertyLocation[i] = 2; } else if ("callbackHandler".equals(location)) { propertyLocation[i] = -1; } Boolean nullAllowedBoolean = parameters[i].getNullAllowed(); nullAllowed[i] = (nullAllowedBoolean != null) ? nullAllowedBoolean.booleanValue() : true; defaultFormat[i] = (parameters[i].getType().getDefaultJMSFormat() != null) ? parameters[i].getType().getDefaultJMSFormat().getJavaType() : null; } } } String opTemplate = operation.getRestEndpoint(); java.util.regex.Matcher match = objectPattern.matcher(opTemplate); int uriParam = -1; if (match.matches()) { String param = null; if (match.groupCount() > 4 && match.group(4) != null) { param = match.group(4); if (param.startsWith("?")) { param = param.substring(1); for (int i = 0; i < 8; i++) { if (parameterName[i] != null && parameterName[i].equals(param)) { uriParam = i; } } } } } stringBuffer.append(TEXT_50); if (!firstOp) { stringBuffer.append(TEXT_51); } else { stringBuffer.append(TEXT_52); } stringBuffer.append(TEXT_53); if (restOperation.operationName == SerializationConstants.NULL_OP) { stringBuffer.append(TEXT_54); } else { stringBuffer.append("OP_" + org.openanzo.rdf.utils.WikiFormatUtils .formatConstantString(restOperation.operationName)); stringBuffer.append(TEXT_55); } if (uriParam > -1) { stringBuffer.append(TEXT_56); } stringBuffer.append(TEXT_57); stringBuffer.append(WikiFormatUtils.capFirstLetter(operation.getName())); stringBuffer.append(TEXT_58); for (int i = 0; i < 8; i++) { Parameter parameter = parameters[i]; if (defaultFormat[i] != null) { stringBuffer.append(TEXT_59); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_60); stringBuffer.append( WikiFormatUtils.convertPackageDirectory(wrapper.task.getInterfacePackage())); stringBuffer.append(TEXT_61); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_62); stringBuffer.append( org.openanzo.rdf.utils.WikiFormatUtils.formatConstantString(parameterName[i])); stringBuffer.append(TEXT_63); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_64); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_65); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_66); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_67); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_68); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_69); stringBuffer.append(defaultFormat[i]); stringBuffer.append(TEXT_70); } if (parameter != null && propertyLocation[i] > -1 && i != uriParam) { if (propertyLocation[i] == 1) { readerParam = i; stringBuffer.append(TEXT_71); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_72); } else { stringBuffer.append(TEXT_73); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_74); stringBuffer.append(WikiFormatUtils .convertPackageDirectory(wrapper.task.getInterfacePackage())); stringBuffer.append(TEXT_75); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_76); stringBuffer.append(org.openanzo.rdf.utils.WikiFormatUtils .formatConstantString(parameterName[i])); stringBuffer.append(TEXT_77); stringBuffer.append(javaType[i]); stringBuffer.append(TEXT_78); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_79); if (nullAllowed[i]) { stringBuffer.append(TEXT_80); stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_81); } stringBuffer.append(serializer[i]); stringBuffer.append(TEXT_82); stringBuffer.append(WikiFormatUtils .convertPackageDirectory(wrapper.task.getInterfacePackage())); stringBuffer.append(TEXT_83); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_84); stringBuffer.append(org.openanzo.rdf.utils.WikiFormatUtils .formatConstantString(parameterName[i])); stringBuffer.append(TEXT_85); if (defaultFormat[i] != null) { stringBuffer.append(parameterName[i]); stringBuffer.append(TEXT_86); } else { stringBuffer.append(TEXT_87); } stringBuffer.append(TEXT_88); if (nullAllowed[i]) { stringBuffer.append(TEXT_89); } stringBuffer.append(TEXT_90); } } } if (uriParam > -1) { stringBuffer.append(TEXT_91); stringBuffer.append(javaType[uriParam]); stringBuffer.append(TEXT_92); stringBuffer.append(parameterName[uriParam]); stringBuffer.append(TEXT_93); stringBuffer.append(serializer[uriParam]); stringBuffer.append(TEXT_94); } stringBuffer.append(TEXT_95); stringBuffer.append(service.getName()); stringBuffer.append(TEXT_96); stringBuffer.append(operation.getName()); stringBuffer.append(TEXT_97); for (int i = 0; i < 8; i++) { if (parameters[i] != null && propertyLocation[i] > -1) { stringBuffer.append(TEXT_98); stringBuffer.append(parameterName[i]); } if (defaultFormat[i] != null && readerParam == i) { stringBuffer.append(TEXT_99); stringBuffer.append(parameterName[readerParam]); stringBuffer.append(TEXT_100); } } stringBuffer.append(TEXT_101); if (resultHasDefaultFormat) { stringBuffer.append(TEXT_102); } stringBuffer.append(TEXT_103); stringBuffer.append(WikiFormatUtils.capFirstLetter(operation.getName())); stringBuffer.append(TEXT_104); firstOp = false; } stringBuffer.append(TEXT_105); } stringBuffer.append(TEXT_106); firstMethod = false; } stringBuffer.append(TEXT_107); stringBuffer.append(TEXT_108); return stringBuffer.toString(); }