/* * Add transition properties to entity info */ public static void addNavPropertiesToEntityInfo( EntityInfo entityInfo, InteractionModel interactionModel) { IMResourceStateMachine rsm = interactionModel.findResourceStateMachine(entityInfo.getClazz()); if (rsm != null) { for (IMTransition transition : rsm.getEntityStateTransitions()) { List<FieldInfo> properties = entityInfo.getAllFieldInfos(); List<String> annotations = new ArrayList<String>(); if (transition instanceof IMCollectionStateTransition) { // Transition to collection state // TODO fix reciprocal links // annotations.add("@OneToMany(cascade = CascadeType.ALL, mappedBy = \"" + // transition.getTargetStateName() + "\")"); // properties.add(new FieldInfo(transition.getTargetStateName(), "Collection<" + // transition.getTargetEntityName() + ">", annotations)); } else if (transition instanceof IMEntityStateTransition) { // Transition to entity state IMEntityStateTransition t = (IMEntityStateTransition) transition; annotations.add( "@JoinColumn(name = \"" + t.getLinkProperty() + "\", referencedColumnName = \"" + t.getTargetResourceStateMachine().getMappedEntityProperty() + "\", insertable = false, updatable = false)"); annotations.add("@ManyToOne(optional = false)"); properties.add( new FieldInfo( t.getTargetState().getName(), t.getTargetResourceStateMachine().getEntityName(), annotations)); } } } }
@Test public void testEntityInfo() { JPAResponderGen rg = new JPAResponderGen(); EntityMetadata mdEntity = new EntityMetadata("Flight"); Vocabulary voc = new Vocabulary(); voc.setTerm(new TermValueType(TermValueType.INTEGER_NUMBER)); voc.setTerm(new TermIdField(true)); mdEntity.setPropertyVocabulary("ID", voc); EntityInfo p = rg.createEntityInfoFromEntityMetadata("AirlineModel", mdEntity); assertEquals("Flight", p.getClazz()); assertEquals("AirlineModel", p.getPackage()); assertEquals("AirlineModel.Flight", p.getFQTypeName()); }
/** * Utility method to form class filename. * * @param srcTargetDir * @param entityInfo * @return */ public static String formClassFilename(String path, EntityInfo entityInfo) { return path + "/" + entityInfo.getClazz() + ".java"; }