public SqlCreateStatement( Map<String, Element> elementMap, Element parent, SqlUpgradeScripts upgradeScripts) { this.tableName = parent.getSimpleName().toString(); columnDefinitions = new ArrayList<>(); columnDefinitions.add(ColumnDefinition.createPrimaryIdDefinition()); for (String key : elementMap.keySet()) { Element element = elementMap.get(key); ColumnDefinition columnDefinition = new ColumnDefinition(element); Column column = element.getAnnotation(Column.class); ForeignObject foreignObject = element.getAnnotation(ForeignObject.class); if (column != null && upgradeScripts != null) { int version = column.version(); if (version > 1) { upgradeScripts.addAlterAddColumn(columnDefinition, tableName, version); } } else if (foreignObject != null && upgradeScripts != null) { int version = foreignObject.version(); if (version > 1) { upgradeScripts.addAlterAddColumn(columnDefinition, tableName, version); } } columnDefinitions.add(columnDefinition); } }
@SuppressWarnings({"unchecked"}) public Content sync(final ForeignObject foreignObject) { return findById(foreignObject.getLocalClass(), foreignObject); }