Author: fdesbois Date: 2009-12-18 12:19:21 +0100 (Fri, 18 Dec 2009) New Revision: 1727 Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java Log: Evol #162 : Test visibility for entity operation to manage different generation from a public operation or not Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java 2009-12-18 10:35:35 UTC (rev 1726) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java 2009-12-18 11:19:21 UTC (rev 1727) @@ -245,6 +245,8 @@ generateAssociationAccessors(result, (ObjectModelAssociationClass) clazz); } + generateAbstractMethods(result, clazz); + boolean doGenerateToString = TopiaGeneratorUtil.generateToString(clazz, model); if (doGenerateToString) { generateToStringMethod(result, clazz); @@ -1049,6 +1051,26 @@ } + /** + * Generate entity methods which have not a public visibility. In this case, they will not be + * generated in the EntityInterface, so they will be generated here, in the EntityAbstract + * with abstract modifier to keep consistency with the model. + * @param result ObjectModelClass result corresponding to the EntityAbstract + * @param clazz ObjectModelClass source from ObjectModel + */ + private void generateAbstractMethods(ObjectModelClass result, ObjectModelClass clazz) { + for (ObjectModelOperation op : clazz.getOperations()) { + if (log.isDebugEnabled()) { + log.debug("clazz : " + clazz.getQualifiedName() + " - method : " + op.getName() + + " - visibility : " + op.getVisibility()); + } + String visibility = op.getVisibility(); + ObjectModelModifier visibilityModifier = ObjectModelModifier.toValue(visibility); + if (!visibilityModifier.equals(ObjectModelModifier.PUBLIC)) { + addOperation(result, op.getName(), op.getReturnType(), visibilityModifier, ObjectModelModifier.ABSTRACT); + } + } + } private void generateI18n(ObjectModelClass result, String i18nPrefix, ObjectModelClass clazz) { Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java 2009-12-18 10:35:35 UTC (rev 1726) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java 2009-12-18 11:19:21 UTC (rev 1727) @@ -323,7 +323,9 @@ for (ObjectModelOperation op : classifier.getOperations()) { - if (op.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_DAO)) { + String visibility = op.getVisibility(); + if (op.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_DAO) || + !visibility.equals(ObjectModelModifier.PUBLIC.toString())) { // Pas de génération des signatures de méthodes pour celles à intégrer au DAO de l'entité continue; }