[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/util ...

Robert Stryker rawblem at gmail.com
Sat Aug 12 01:04:31 EDT 2006


  User: rawb    
  Date: 06/08/12 01:04:30

  Added:       as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/util 
                        ServiceXMLEditorUtil.java
  Log:
  Pulled from ServiceXMLEditorConfiguration
  
  Revision  Changes    Path
  1.1      date: 2006/08/12 05:04:30;  author: rawb;  state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/util/ServiceXMLEditorUtil.java
  
  Index: ServiceXMLEditorUtil.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2006, JBoss Inc., and individual contributors as indicated
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
   * the License, or (at your option) any later version.
   *
   * This software is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
   * License along with this software; if not, write to the Free
   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
   */
  package org.jboss.ide.eclipse.as.ui.util;
  
  import java.util.ArrayList;
  import java.util.Arrays;
  
  import org.eclipse.jdt.core.IMethod;
  import org.eclipse.jdt.core.IType;
  import org.eclipse.jdt.core.JavaModelException;
  import org.jboss.ide.eclipse.as.ui.util.PackageTypeSearcher.ResultFilter;
  
  public class ServiceXMLEditorUtil {
  	public static IType findType(String codeClass ) {
  		final String codeClass2 = codeClass;
  		if( codeClass == null ) return null;
  		ResultFilter filter = new ResultFilter() {
  			public boolean accept(Object found) {
  				if( found instanceof IType ) {
  					IType type = (IType)found;
  					if( type.getFullyQualifiedName().equals(codeClass2)) {
  						return true;
  					}
  					return false;
  				}
  				return true;
  			}
  		};
  		PackageTypeSearcher searcher = new PackageTypeSearcher(codeClass, filter);
  		ArrayList foundTypes = searcher.getTypeMatches();
  		if( foundTypes.size() == 1 ) {
  			return (IType)foundTypes.get(0);
  		}
  		return null;
  	}
  
  	public static IMethod[] getAllMethods(IType type) {
  		ArrayList methods = new ArrayList();
  		try {
  			methods.addAll(Arrays.asList(type.getMethods()));
  			String parentTypeName = type.getSuperclassName();
  			IType parentType = findType(parentTypeName);
  			if( parentType != null ) {
  				methods.addAll(Arrays.asList(getAllMethods(parentType)));
  			}
  		} catch( JavaModelException jme ) {
  			jme.printStackTrace();
  		}
  		return (IMethod[]) methods.toArray(new IMethod[methods.size()]);
  	}
  	
  	public static String[] findAttributesFromMethods(IMethod[] methods, String attributeCurrentValue) {
  		ArrayList attributeNames = new ArrayList();
  		String getterPrefix = "get" + attributeCurrentValue;
  		
  		
  		for( int i = 0; i < methods.length; i++ ) {
  			if( methods[i].getElementName().startsWith(getterPrefix)) {
  				String atName = methods[i].getElementName().substring(3);
  				String setterName = "set" + atName;
  				for( int j = 0; j < methods.length; j++ ) {
  					if( methods[j].getElementName().equals(setterName)) {
  						// there's a getter and a setter... 
  						try {
  							if( methods[j].getParameterNames().length == 1 ) {
  								// one parameter... 
  								String[] paramTypes = methods[j].getParameterTypes();
  								String getterReturnType = methods[i].getReturnType();
  								if( getterReturnType.equals(paramTypes[0])) {
  									attributeNames.add(atName);
  								}
  							}
  						} catch( JavaModelException jme ) {
  							
  						}
  					}
  				}
  			}
  		}
  		
  		return (String[]) attributeNames.toArray(new String[attributeNames.size()]);
  	}
  }
  
  
  



More information about the jboss-cvs-commits mailing list