public void addCategory( String category, String variableIdent, TypeSpecification element, TypeBody declarationType) throws JselException { ListOfCategories typeLoc = null; if (declarationType != null) { typeLoc = (ListOfCategories) allCategorizedClasses.get(declarationType.getFcn()); // !! job: what happens with missing categories?? if (typeLoc == null) { // typeLoc = new ListOfCategories( declarationType.getFcn( ); // allCategorizedClasses.put( declarationType.getFcn(), typeLoc ); } else { // !! put in here (and all category constructors a complexity helper method typeLoc.add( new ArchitecturalCategory( ((SourceMarker) element).getSourceURL(), ((SourceMarker) element).getLine(), ((SourceMarker) element).getColumn(), variableIdent, category)); } } }
private void checkGetterSetter() { // !! double ratio = 0; Enumeration propertyEnum = allGetterSetterCounterForClasses.keys(); while (propertyEnum.hasMoreElements()) { String key = (String) propertyEnum.nextElement(); Integer numGetterSetter = (Integer) allGetterSetterCounterForClasses.get(key + GETTERSETTER); Integer num = (Integer) allGetterSetterCounterForClasses.get(key); if (numGetterSetter != null && num != null) { ratio = new Double(num.intValue()).doubleValue() / new Double(numGetterSetter.intValue()).doubleValue(); } else if (numGetterSetter != null && num == null) { ratio = -1; } else if (numGetterSetter == null && num != null) { ratio = 1; } // System.out.println( "ยงยง " + num +" / "+ numGetterSetter + " = "+ ratio ); if (ratio < 0.3) { ListOfCategories typeLoc = (ListOfCategories) allCategorizedClasses.get(key); if (typeLoc != null) { BigDecimal bg = new BigDecimal(ratio); addCategory( typeLoc, VALUE_OBJECT, "Getter/Setter Count = " + numGetterSetter + " Ratio: " + bg.divide(new BigDecimal("1.0"), 2, BigDecimal.ROUND_HALF_UP).toString(), typeLoc.getSourceURL()); } } } }
/* public void addCategory(String category, String variableIdent, Interface element, TypeDefinition declarationType) { ListOfCategories typeLoc = null; typeLoc = (ListOfCategories) allCategorizedClasses.get(element.getFcn()); typeLoc.add(new ArchitecturalCategory( ((SourceMarker)element).getSourceURL(), ((SourceMarker)element).getLine(), ((SourceMarker)element).getColumn(), variableIdent, category)); } */ public void addCategory( String category, String variableIdent, TypeSpecification element, TypeDefinition declarationType) throws JselException { ListOfCategories typeLoc = null; if (declarationType != null) { typeLoc = (ListOfCategories) allCategorizedClasses.get(declarationType.getFcn()); // !! job: what happens with missing categories?? if (typeLoc == null) { // typeLoc = new ListOfCategories( declarationType.getFcn( ); // allCategorizedClasses.put( declarationType.getFcn(), typeLoc ); new Exception().printStackTrace(); } else { typeLoc.add( new ArchitecturalCategory( ((SourceMarker) element).getSourceURL(), ((SourceMarker) element).getLine(), ((SourceMarker) element).getColumn(), variableIdent, category)); } } }
public void addCategory(String category, String variableIdent, TypeDefinition element) throws JselException { ListOfCategories typeLoc = null; typeLoc = (ListOfCategories) allCategorizedClasses.get(element.getFcn()); typeLoc.add( new ArchitecturalCategory( ((SourceMarker) element).getSourceURL(), ((SourceMarker) element).getLine(), ((SourceMarker) element).getColumn(), variableIdent, category)); }
public void visit(Method p) { // !! detect Connection >> prepareCall( ) int start = p.getAst().getFirstToken().getLine(); int end = p.getAst().getLastToken().getLine(); TypeBody enclosingType = p.getEnclosingType(); final String fcn = enclosingType.getFcn(); if (((end - start) < 3) && (p.getName().toString().startsWith("get") || p.getName().toString().startsWith("set"))) { try { String keyGetterSetter = fcn + GETTERSETTER; Integer getterCounter = (Integer) allGetterSetterCounterForClasses.get(keyGetterSetter); if (getterCounter == null) { allGetterSetterCounterForClasses.put(keyGetterSetter, new Integer(1)); ListOfCategories typeLoc = (ListOfCategories) allCategorizedClasses.get(fcn); if (typeLoc != null) { typeLoc.setType(fcn); } } else { allGetterSetterCounterForClasses.put( keyGetterSetter, new Integer(getterCounter.intValue() + 1)); } } catch (Exception e) { e.printStackTrace(); } } else { try { Integer getterCounter = (Integer) allGetterSetterCounterForClasses.get(fcn); if (getterCounter == null) { allGetterSetterCounterForClasses.put(fcn, new Integer(1)); ListOfCategories typeLoc = (ListOfCategories) allCategorizedClasses.get(fcn); if (typeLoc != null) { typeLoc.setType(fcn); } } else { allGetterSetterCounterForClasses.put(fcn, new Integer(getterCounter.intValue() + 1)); } } catch (Exception e) { e.printStackTrace(); } } }
private void compressClassesToPackageLevel() { Enumeration classesEnum = this.allCategorizedClasses.keys(); while (classesEnum.hasMoreElements()) { String key = (String) classesEnum.nextElement(); ListOfCategories loc = (ListOfCategories) allCategorizedClasses.get(key); ListOfPackageCategories lopc = (ListOfPackageCategories) this.allCategorizedPackages.get(ListOfPackageCategories.getWithClassFcn(key)); if (loc.size() == 0) { ArchitecturalCategoryPackage pnac = (ArchitecturalCategoryPackage) lopc.get("NOT CATEGORIZED"); if (pnac != null) { pnac.occurance++; } else { // logger.error(" No ArchitecturalCategory for <NOT CATEGORIZED> initialized. "); } } for (int i = 0; i < loc.size(); i++) { try { ArchitecturalCategory ac = (ArchitecturalCategory) loc.elementAt(i); // System.out.println ("*** " +ac.categoryType ); ArchitecturalCategoryPackage pac = lopc.get(ac.categoryType); if (pac == null) { lopc.put( ac.categoryType, new ArchitecturalCategoryPackage(key, ac.categoryType, ac.source_url)); } else { pac.occurance++; } } catch (RuntimeException e) { // TODO Auto-generated catch block } } } }
/* public void addCategory(ListOfCategories typeLoc, String category, String variableIdent, LanguageElement element) { try { typeLoc.add(new ArchitecturalCategory( ((SourceMarker)element).getSourceURL(), ((SourceMarker)element).getLine(), ((SourceMarker)element).getColumn(), variableIdent, category)); } catch (Exception e) { context.warn(element, e); } } */ public void addCategory( ListOfCategories typeLoc, String category, String variableIdent, String fcn) { typeLoc.add(new ArchitecturalCategory(fcn, 0, 0, variableIdent, category)); }