/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.diagram.ui.notation.uml.model; import org.eclipse.emf.ecore.EObject; import org.teiid.core.designer.ModelerCoreException; import org.teiid.designer.core.metamodel.aspect.uml.UmlProperty; import org.teiid.designer.diagram.ui.util.DiagramEntityAdapter; import org.teiid.designer.ui.viewsupport.DatatypeUtilities; import org.teiid.designer.ui.viewsupport.ModelObjectUtilities; /** * @author mdrilling * * Model Node for UML Attribute. * * @since 8.0 */ public class UmlAttributeNode extends UmlModelNode { public UmlAttributeNode( EObject modelObject, UmlProperty aspect ) { super( modelObject, aspect ); } @Override public String toString() { return "UmlAttributeNode(" + getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ } public String getType() { if( getModelObject() != null ) return ((UmlProperty)aspect).getSignature(getModelObject(),UmlProperty.SIGNATURE_TYPE); return null; } @Override public String getName() { if( getModelObject() != null ) return ((UmlProperty)aspect).getSignature(getModelObject(),UmlProperty.SIGNATURE_NAME); return null; } @Override public void setName(String name) { try { boolean wasRenamed = DatatypeUtilities.renameSqlColumn(getModelObject(), name); if( !wasRenamed ) { ModelObjectUtilities.rename(getModelObject(), name, this); } } catch (ModelerCoreException theException) { } } public String getSignature() { if( getModelObject() != null ) { String signature = ((UmlProperty)aspect).getSignature(getModelObject(),UmlProperty.SIGNATURE_NAME | UmlProperty.SIGNATURE_TYPE); return signature; } return null; } public void refreshForNameChange(){ if( getDiagramModelObject() != null && !isReadOnly()) { String oldName = "xxxXxxx"; //$NON-NLS-1$ String signature = getSignature(); DiagramEntityAdapter.setName(getDiagramModelObject(), getName()); firePropertyChange(DiagramNodeProperties.NAME, oldName, signature); } else firePropertyChange(DiagramNodeProperties.NAME, null, null); } public void rename() { firePropertyChange(DiagramNodeProperties.RENAME, null, null); } }