00001 package org.andromda.cartridges.arc; 00002 00003 import java.util.Collection; 00004 import java.util.ArrayList; 00005 00009 public class ResponsibilityProcessor { 00010 private String tecnologicDependency; 00011 private String developLanguage; 00012 private String database; 00013 private String interfaceComplexity; 00014 00015 public void setPreferences(String tecnologicDependency, String developLanguage, String database, String interfaceComplexity) { 00016 if(tecnologicDependency==null) this.tecnologicDependency=""; 00017 else this.tecnologicDependency=tecnologicDependency; 00018 if(developLanguage==null) this.developLanguage=""; 00019 else this.developLanguage=developLanguage; 00020 if(database==null) this.database=""; 00021 else this.database=database; 00022 if(database==null) this.interfaceComplexity=""; 00023 else this.interfaceComplexity=interfaceComplexity; 00024 } 00025 00026 public Collection process(Responsibility resp) { 00027 ArrayList Treatments=new ArrayList(); 00028 00029 if(resp instanceof KeyResponsibility) { 00030 Treatments.add(new DictionaryTreatment(resp)); 00031 if((tecnologicDependency.equals("High")) && (developLanguage.equals("Java") || developLanguage.equals(".NET")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new HybernateTreatment(resp)); 00032 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new SQLTreatment(resp)); 00033 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new DBSchemaTreatment(resp)); 00034 } 00035 else if(resp instanceof CardinalityResponsibility) { 00036 Treatments.add(new CardinalityControlTreatment(resp)); 00037 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (interfaceComplexity.equals("Medium") || interfaceComplexity.equals("High"))) Treatments.add(new InputSizeControlTreatment(resp)); 00038 if((tecnologicDependency.equals("High")) && (developLanguage.equals("Java") || developLanguage.equals(".NET")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new HybernateTreatment(resp)); 00039 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new SQLTreatment(resp)); 00040 if((tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new TriggerTreatment(resp)); 00041 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new DBSchemaTreatment(resp)); 00042 } 00043 else if(resp instanceof ConstraintResponsibility) { 00044 if(((ConstraintResponsibility)resp).getConstraintName().equals("existsElement")) { 00045 Treatments.add(new DictionaryTreatment(resp)); 00046 if((tecnologicDependency.equals("High")) && (developLanguage.equals("Java") || developLanguage.equals(".NET")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new HybernateTreatment(resp)); 00047 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new SQLTreatment(resp)); 00048 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (interfaceComplexity.equals("High"))) Treatments.add(new InputFilterTreatment(resp)); 00049 } 00050 if(((ConstraintResponsibility)resp).getConstraintName().equals("notEmptyPopulation")) { 00051 Treatments.add(new DictionaryTreatment(resp)); 00052 if((tecnologicDependency.equals("High")) && (developLanguage.equals("Java") || developLanguage.equals(".NET")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new HybernateTreatment(resp)); 00053 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new SQLTreatment(resp)); 00054 } 00055 if(((ConstraintResponsibility)resp).getConstraintName().equals("deleteElement")) { 00056 Treatments.add(new DictionaryTreatment(resp)); 00057 if((tecnologicDependency.equals("High")) && (developLanguage.equals("Java") || developLanguage.equals(".NET")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new HybernateTreatment(resp)); 00058 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new SQLTreatment(resp)); 00059 if((tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new StoredProcedureTreatment(resp)); 00060 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new OnCascadeTreatment(resp)); 00061 } 00062 if(((ConstraintResponsibility)resp).getConstraintName().equals("insertElement")) { 00063 Treatments.add(new DictionaryTreatment(resp)); 00064 if((tecnologicDependency.equals("High")) && (developLanguage.equals("Java") || developLanguage.equals(".NET")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new HybernateTreatment(resp)); 00065 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new SQLTreatment(resp)); 00066 if((tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new StoredProcedureTreatment(resp)); 00067 } 00068 if(((ConstraintResponsibility)resp).getConstraintName().equals("listAll")) { 00069 Treatments.add(new DictionaryTreatment(resp)); 00070 if((tecnologicDependency.equals("High")) && (developLanguage.equals("Java") || developLanguage.equals(".NET")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new HybernateTreatment(resp)); 00071 if((tecnologicDependency.equals("Medium") || tecnologicDependency.equals("High")) && (database.equals("Oracle") || database.equals("PostgreSQL"))) Treatments.add(new SQLTreatment(resp)); 00072 } 00073 } 00074 return Treatments; 00075 } 00076 }
1.4.7