use of org.tmdmaker.core.model.IAttribute in project tmdmaker by tmdmaker.
the class AttributeComponentEditPolicy method createEditCommand.
@Override
protected Command createEditCommand() {
EditAttribute edited = ((AttributeDialog) dialog).getEditedValue();
if (!edited.isEdited()) {
return null;
}
Attribute editedValueAttribute = new Attribute();
edited.copyTo(editedValueAttribute);
IAttribute original = edited.getOriginalAttribute();
EditPart part = getHost();
if (!(part instanceof IAttributeEditPart)) {
return null;
}
AbstractEntityModel entity = ((IAttributeEditPart) part).getParentModel();
return new AttributeEditCommand(original, editedValueAttribute, entity);
}
use of org.tmdmaker.core.model.IAttribute in project tmdmaker by tmdmaker.
the class EntityFileImporter method convertEntityIfPossible.
private AbstractEntityModel convertEntityIfPossible(AbstractEntityModel model) {
String entityName = model.getName();
List<IAttribute> identifierCandidates = new ArrayList<IAttribute>();
for (IAttribute a : model.getAttributes()) {
String generateName = new Identifier(a.getName()).createEntityName().getValue();
if (entityName.equals(generateName)) {
identifierCandidates.add(a);
}
}
if (!identifierCandidates.isEmpty()) {
IAttribute attribute = identifierCandidates.get(0);
Entity entity = null;
Identifier identifier = new Identifier(attribute.getName());
ModelName name = new ModelName(model.getName());
if (isEvent(model)) {
entity = Entity.ofEvent(name, identifier);
} else {
entity = Entity.ofResource(name, identifier);
}
EntityType type = entity.getEntityType();
model.copyTo(entity);
entity.setEntityType(type);
entity.removeAttribute((Attribute) attribute);
entity.setNotImplement(false);
return entity;
}
return model;
}
use of org.tmdmaker.core.model.IAttribute in project tmdmaker by tmdmaker.
the class ImplementRule method findAllImplementAttributes.
/**
* モデルの実装対象アトリビュートを取得する
*
* @param model
* 対象モデル
* @return アトリビュートのリスト
*/
public static List<IAttribute> findAllImplementAttributes(AbstractEntityModel model) {
List<IAttribute> attributes = new ArrayList<IAttribute>();
SurrogateKey surrogateKey = model.getKeyModels().getSurrogateKey();
if (surrogateKey.isEnabled()) {
attributes.add(surrogateKey);
}
// 個体指定子を追加
addIdentifier(model, attributes);
// re-usedを追加
Map<AbstractEntityModel, ReusedIdentifier> reused = model.getReusedIdentifiers();
for (Entry<AbstractEntityModel, ReusedIdentifier> entry : reused.entrySet()) {
ReusedIdentifier ri = entry.getValue();
if (ri == null) {
continue;
}
if (ri.isSurrogateKeyEnabled()) {
for (SurrogateKeyRef s : ri.getSurrogateKeys()) {
attributes.add(s);
}
} else {
for (IdentifierRef ref : ri.getUniqueIdentifiers()) {
attributes.add(ref);
}
}
}
// モデルのアトリビュートを追加
attributes.addAll(model.getAttributes());
// 派生元に戻して実装するモデルのアトリビュートを追加
for (AbstractEntityModel m : model.getImplementDerivationModels()) {
attributes.addAll(m.getAttributes());
}
return attributes;
}
use of org.tmdmaker.core.model.IAttribute in project tmdmaker by tmdmaker.
the class DdlUtilsConverter method convert.
/**
* TMD-MakerのキーモデルをDDLUtilsのインデックスモデルへ変換する
*
* @param key
* TMD-Makerのアトリビュートモデル
* @return DDLUtilsのインデックスモデル
*/
private Index convert(KeyModel key, Map<IAttribute, Column> attributeColumnMap) {
Index index = null;
if (key.isUnique()) {
index = new UniqueIndex();
} else {
index = new NonUniqueIndex();
}
index.setName(key.getName());
for (IAttribute attr : key.getAttributes()) {
Column column = attributeColumnMap.get(attr);
if (column != null) {
IndexColumn indexColumn = new IndexColumn(column);
index.addColumn(indexColumn);
} else {
logger.error("column not found.{}", attr.getName());
}
}
return index;
}
use of org.tmdmaker.core.model.IAttribute in project tmdmaker by tmdmaker.
the class DdlUtilsConverter method addColumns.
/**
* カラムを追加する
*
* @param entity
* 対象エンティティ
* @param table
* 対象テーブル
* @param attributeColumnMap
* アトリビュートとカラムのマップ
*/
private void addColumns(AbstractEntityModel entity, Table table, Map<IAttribute, Column> attributeColumnMap) {
List<IAttribute> attributes = ImplementRule.findAllImplementAttributes(entity);
for (IAttribute a : attributes) {
Column column = convert(a);
table.addColumn(column);
attributeColumnMap.put(a, column);
}
}
Aggregations