blob: efd98a1b44dcc9df8f76372f0d86a7eac4b80283 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2019 Willink Transformations and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* E.D.Willink - initial API and implementation
*******************************************************************************/
package org.eclipse.ocl.xtext.markupcs.impl;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.ocl.xtext.markupcs.FigureElement;
import org.eclipse.ocl.xtext.markupcs.MarkupPackage;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Fig Element</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* </p>
* <ul>
* <li>{@link org.eclipse.ocl.xtext.markupcs.impl.FigureElementImpl#getId <em>Id</em>}</li>
* <li>{@link org.eclipse.ocl.xtext.markupcs.impl.FigureElementImpl#getSrc <em>Src</em>}</li>
* <li>{@link org.eclipse.ocl.xtext.markupcs.impl.FigureElementImpl#getAlt <em>Alt</em>}</li>
* <li>{@link org.eclipse.ocl.xtext.markupcs.impl.FigureElementImpl#getDef <em>Def</em>}</li>
* <li>{@link org.eclipse.ocl.xtext.markupcs.impl.FigureElementImpl#getRequiredWidth <em>Required Width</em>}</li>
* <li>{@link org.eclipse.ocl.xtext.markupcs.impl.FigureElementImpl#getRequiredHeight <em>Required Height</em>}</li>
* <li>{@link org.eclipse.ocl.xtext.markupcs.impl.FigureElementImpl#getActualWidth <em>Actual Width</em>}</li>
* <li>{@link org.eclipse.ocl.xtext.markupcs.impl.FigureElementImpl#getActualHeight <em>Actual Height</em>}</li>
* </ul>
*
* @generated
*/
public class FigureElementImpl extends MarkupElementImpl implements FigureElement {
/**
* The number of structural features of the '<em>Figure Element</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
public static final int FIGURE_ELEMENT_FEATURE_COUNT = MarkupElementImpl.MARKUP_ELEMENT_FEATURE_COUNT + 8;
/**
* The default value of the '{@link #getId() <em>Id</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getId()
* @generated
* @ordered
*/
protected static final int ID_EDEFAULT = 0;
/**
* The default value of the '{@link #getSrc() <em>Src</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSrc()
* @generated
* @ordered
*/
protected static final String SRC_EDEFAULT = null;
/**
* The cached value of the '{@link #getSrc() <em>Src</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSrc()
* @generated
* @ordered
*/
protected String src = SRC_EDEFAULT;
/**
* The default value of the '{@link #getAlt() <em>Alt</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAlt()
* @generated
* @ordered
*/
protected static final String ALT_EDEFAULT = null;
/**
* The cached value of the '{@link #getAlt() <em>Alt</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAlt()
* @generated
* @ordered
*/
protected String alt = ALT_EDEFAULT;
/**
* The default value of the '{@link #getDef() <em>Def</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDef()
* @generated
* @ordered
*/
protected static final String DEF_EDEFAULT = null;
/**
* The cached value of the '{@link #getDef() <em>Def</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDef()
* @generated
* @ordered
*/
protected String def = DEF_EDEFAULT;
/**
* The default value of the '{@link #getRequiredWidth() <em>Required Width</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRequiredWidth()
* @generated
* @ordered
*/
protected static final String REQUIRED_WIDTH_EDEFAULT = null;
/**
* The cached value of the '{@link #getRequiredWidth() <em>Required Width</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRequiredWidth()
* @generated
* @ordered
*/
protected String requiredWidth = REQUIRED_WIDTH_EDEFAULT;
/**
* The default value of the '{@link #getRequiredHeight() <em>Required Height</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRequiredHeight()
* @generated
* @ordered
*/
protected static final String REQUIRED_HEIGHT_EDEFAULT = null;
/**
* The cached value of the '{@link #getRequiredHeight() <em>Required Height</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRequiredHeight()
* @generated
* @ordered
*/
protected String requiredHeight = REQUIRED_HEIGHT_EDEFAULT;
/**
* The default value of the '{@link #getActualWidth() <em>Actual Width</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getActualWidth()
* @generated
* @ordered
*/
protected static final int ACTUAL_WIDTH_EDEFAULT = 0;
/**
* The default value of the '{@link #getActualHeight() <em>Actual Height</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getActualHeight()
* @generated
* @ordered
*/
protected static final int ACTUAL_HEIGHT_EDEFAULT = 0;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected FigureElementImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return MarkupPackage.Literals.FIGURE_ELEMENT;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public int getId() {
return internalGetId();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String getSrc() {
return src;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setSrc(String newSrc) {
String oldSrc = src;
src = newSrc;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, 3, oldSrc, src));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String getAlt() {
return alt;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setAlt(String newAlt) {
String oldAlt = alt;
alt = newAlt;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, 4, oldAlt, alt));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String getDef() {
return def;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setDef(String newDef) {
String oldDef = def;
def = newDef;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, 5, oldDef, def));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String getRequiredWidth() {
return requiredWidth;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setRequiredWidth(String newRequiredWidth) {
String oldRequiredWidth = requiredWidth;
requiredWidth = newRequiredWidth;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, 6, oldRequiredWidth, requiredWidth));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String getRequiredHeight() {
return requiredHeight;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setRequiredHeight(String newRequiredHeight) {
String oldRequiredHeight = requiredHeight;
requiredHeight = newRequiredHeight;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, 7, oldRequiredHeight, requiredHeight));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public int getActualWidth() {
return internalGetActualWidth();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public int getActualHeight() {
return internalGetActualHeight();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
@Override
public String toString() {
return super.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case 2:
return getId();
case 3:
return getSrc();
case 4:
return getAlt();
case 5:
return getDef();
case 6:
return getRequiredWidth();
case 7:
return getRequiredHeight();
case 8:
return getActualWidth();
case 9:
return getActualHeight();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case 3:
setSrc((String)newValue);
return;
case 4:
setAlt((String)newValue);
return;
case 5:
setDef((String)newValue);
return;
case 6:
setRequiredWidth((String)newValue);
return;
case 7:
setRequiredHeight((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case 3:
setSrc(SRC_EDEFAULT);
return;
case 4:
setAlt(ALT_EDEFAULT);
return;
case 5:
setDef(DEF_EDEFAULT);
return;
case 6:
setRequiredWidth(REQUIRED_WIDTH_EDEFAULT);
return;
case 7:
setRequiredHeight(REQUIRED_HEIGHT_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case 2:
return getId() != ID_EDEFAULT;
case 3:
return SRC_EDEFAULT == null ? src != null : !SRC_EDEFAULT.equals(src);
case 4:
return ALT_EDEFAULT == null ? alt != null : !ALT_EDEFAULT.equals(alt);
case 5:
return DEF_EDEFAULT == null ? def != null : !DEF_EDEFAULT.equals(def);
case 6:
return REQUIRED_WIDTH_EDEFAULT == null ? requiredWidth != null : !REQUIRED_WIDTH_EDEFAULT.equals(requiredWidth);
case 7:
return REQUIRED_HEIGHT_EDEFAULT == null ? requiredHeight != null : !REQUIRED_HEIGHT_EDEFAULT.equals(requiredHeight);
case 8:
return getActualWidth() != ACTUAL_WIDTH_EDEFAULT;
case 9:
return getActualHeight() != ACTUAL_HEIGHT_EDEFAULT;
}
return super.eIsSet(featureID);
}
/**
* Start of copy from platform:/resource/org.eclipse.ocl.xtext.markup/model/FigureElement.javacopy
*/
@SuppressWarnings("unused") private static int _START_OF_COPY_ = 0;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated COPY
*/
private static int idCounter = 0;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated COPY
*/
private int id = ID_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated COPY
*/
private int internalGetId() {
if (id == ID_EDEFAULT) {
id = ++idCounter;
}
return id;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated COPY
*/
private BufferedImage image = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated COPY
*/
private BufferedImage internalGetImage() {
if (image == null) {
try {
image = ImageIO.read(new File(getSrc()));
} catch (IOException e) {
System.err.println("Failed to read '" + getSrc() + "'");
e.printStackTrace();
}
}
return image;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated COPY
*/
private int internalGetActualHeight() {
BufferedImage image = internalGetImage();
return image != null ? image.getHeight() : 0;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated COPY
*/
private int internalGetActualWidth() {
BufferedImage image = internalGetImage();
return image != null ? image.getWidth() : 0;
}
/**
* End of copy from platform:/resource/org.eclipse.ocl.xtext.markup/model/FigureElement.javacopy
*/
@SuppressWarnings("unused") private static int _END_OF_COPY_ = 0;
} //FigElementImpl