private Set getMethodDescriptorsOfName(String name, Collection methodDescriptors) { Set set = new HashSet(); for (Iterator itr = methodDescriptors.iterator(); itr.hasNext();) { MethodDescriptor next = (MethodDescriptor) itr.next(); next.setEjbName(getEjbName()); if (name.equals(next.getName())) { if (getEjbClassSymbol()==null) { set.add(next); } else if (getEjbClassSymbol().equals(next.getEjbClassSymbol())) { set.add(next); } } } return set; }
private Set getMethodDescriptorsOfName(String name, Collection methodDescriptors) { Set set = new HashSet(); for (Iterator itr = methodDescriptors.iterator(); itr.hasNext();) { MethodDescriptor next = (MethodDescriptor) itr.next(); next.setEjbName(getEjbName()); if (name.equals(next.getName())) { if (getEjbClassSymbol()==null) { set.add(next); } else if (getEjbClassSymbol().equals(next.getEjbClassSymbol())) { set.add(next); } } } return set; }
/** Equlity iff the parameter names match and the name matches.*/ public boolean equals(Object other) { if (other instanceof MethodDescriptor) { MethodDescriptor otherMethodDescriptor = (MethodDescriptor) other; if (otherMethodDescriptor.getName().equals(getName()) && stringArrayEquals(otherMethodDescriptor.getParameterClassNames(), getParameterClassNames())) { if (getEjbClassSymbol()!=null && otherMethodDescriptor.getEjbClassSymbol()!=null) { return getEjbClassSymbol().equals(otherMethodDescriptor.getEjbClassSymbol()); } // if the ejb class symbol is not defined in both descriptor, we consider // the method described being the same. return true; } } return false; }
/** Equlity iff the parameter names match and the name matches.*/ public boolean equals(Object other) { if (other instanceof MethodDescriptor) { MethodDescriptor otherMethodDescriptor = (MethodDescriptor) other; if (otherMethodDescriptor.getName().equals(getName()) && stringArrayEquals(otherMethodDescriptor.getParameterClassNames(), getParameterClassNames())) { // If method names and params match, it still can be a wild-card method-name... // And wild-card can be present with farious interfaces or no method-intf at all... if (getEjbClassSymbol()!=null && otherMethodDescriptor.getEjbClassSymbol()!=null) { // Method descriptors are equal if method-intf value is the same, even if they have // wild-card method names return getEjbClassSymbol().equals(otherMethodDescriptor.getEjbClassSymbol()); } else if (getName().equals(ALL_METHODS)) { // For wild-card method names, method descriptors are equal if method-intf value is not set in both return (getEjbClassSymbol() == null && otherMethodDescriptor.getEjbClassSymbol() == null); } // If method name is provided, and parameters match, we consider the method described being the same // if the ejb class symbol (method-intf) is not defined in one of the descriptors return true; } } return false; }
/** Returns true if I have enough information to specifiy a unique method * on an ejb's home or remote interface unambiguously. */ public boolean isExact() { if (isExact) { return true; } boolean isExactName = !this.getName().equals(ALL_METHODS); boolean hasMethodIntf = getEjbClassSymbol()!=null; boolean hasParamsListed = (this.getParameterClassNames() != null); return isExactName && hasMethodIntf && hasParamsListed; }
/** Returns true if I have enough information to specifiy a unique method * on an ejb's home or remote interface unambiguously. */ public boolean isExact() { if (isExact) { return true; } boolean isExactName = !this.getName().equals(ALL_EJB_METHODS); boolean hasMethodIntf = getEjbClassSymbol()!=null; boolean hasParamsListed = (this.getParameterClassNames() != null); return isExactName && hasMethodIntf && hasParamsListed; }
next.setDescription(this.getDescription()); if (getEjbClassSymbol()==null) { v.addElement(next); } else if (this.getEjbClassSymbol().equals(next.getEjbClassSymbol())) { v.addElement(next); v.addAll(this.getMethodDescriptorsOfName(this.getName(), allMethods)); } else { // STYLE 3, but maybe not exact if (getEjbClassSymbol()==null) { v.addAll(this.getMethodDescriptorsOfNameAndParameters(this.getName(), this.getParameterClassNames(), allMethods)); } else {
next.setDescription(this.getDescription()); if (getEjbClassSymbol()==null) { v.addElement(next); } else if (this.getEjbClassSymbol().equals(next.getEjbClassSymbol())) { v.addElement(next); v.addAll(this.getMethodDescriptorsOfName(this.getName(), allMethods)); } else { // STYLE 3, but maybe not exact if (getEjbClassSymbol()==null) { v.addAll(this.getMethodDescriptorsOfNameAndParameters(this.getName(), this.getParameterClassNames(), allMethods)); } else {
/** * @param methodDesc * @param ejbDesc * @return whether the given methodDesc has permission defined in ejbDesc */ private boolean hasMethodPermissionsFromDD(MethodDescriptor methodDesc, EjbDescriptor ejbDesc) { HashMap methodPermissionsFromDD = ejbDesc.getMethodPermissionsFromDD(); if (methodPermissionsFromDD != null) { Set allMethods = ejbDesc.getMethodDescriptors(); String ejbClassSymbol = methodDesc.getEjbClassSymbol(); for (Object mdObjsObj : methodPermissionsFromDD.values()) { List mdObjs = (List)mdObjsObj; for (Object mdObj : mdObjs) { MethodDescriptor md = (MethodDescriptor)mdObj; for (Object style3MdObj : md.doStyleConversion(ejbDesc, allMethods)) { MethodDescriptor style3Md = (MethodDescriptor)style3MdObj; if (methodDesc.equals(style3Md)) { return true; } } } } } return false; }
String mthdIntf = md.getEjbClassSymbol(); String mthdParams[] = md.getStyle() == 3 ? md.getParameterClassNames() : null; String mthdIntf = md.getEjbClassSymbol();
String mthdIntf = md.getEjbClassSymbol(); String mthdParams[] = md.getStyle() == 3 ? md.getParameterClassNames() : null; String mthdIntf = md.getEjbClassSymbol();
public Node writeDescriptor(Node parent, String nodeName, MethodDescriptor descriptor, String ejbName) { Node methodNode = super.writeDescriptor(parent, nodeName, descriptor); writeLocalizedDescriptions(methodNode, descriptor); if (ejbName != null && ejbName.length() > 0) { appendTextChild(methodNode, TagNames.EJB_NAME, ejbName); } String methodIntfSymbol = descriptor.getEjbClassSymbol(); if( (methodIntfSymbol != null) && !methodIntfSymbol.equals(MethodDescriptor.EJB_BEAN) ) { appendTextChild(methodNode, TagNames.METHOD_INTF, methodIntfSymbol); } appendTextChild(methodNode, TagNames.METHOD_NAME, descriptor.getName()); if (descriptor.getParameterClassNames()!=null) { Node paramsNode = appendChild(methodNode, TagNames.METHOD_PARAMS); writeMethodParams(paramsNode, descriptor); } return methodNode; }
/** * write the method descriptor class to a query-method DOM tree and return it * * @param parent node in the DOM tree * @param node name for the root element of this xml fragment * @param the descriptor to write * @return the DOM tree top node */ public Node writeDescriptor(Node parent, String nodeName, MethodDescriptor descriptor, String ejbName) { Node methodNode = super.writeDescriptor(parent, nodeName, descriptor); writeLocalizedDescriptions(methodNode, descriptor); if (ejbName != null && ejbName.length() > 0) { appendTextChild(methodNode, EjbTagNames.EJB_NAME, ejbName); } String methodIntfSymbol = descriptor.getEjbClassSymbol(); if( (methodIntfSymbol != null) && !methodIntfSymbol.equals(MethodDescriptor.EJB_BEAN) ) { appendTextChild(methodNode, EjbTagNames.METHOD_INTF, methodIntfSymbol); } appendTextChild(methodNode, EjbTagNames.METHOD_NAME, descriptor.getName()); if (descriptor.getParameterClassNames()!=null) { Node paramsNode = appendChild(methodNode, EjbTagNames.METHOD_PARAMS); writeMethodParams(paramsNode, descriptor); } return methodNode; }