/**
* Copyright (c) 2013 Eclipse contributors and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.emf.test.common.reification.impl;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.test.common.reification.LinkItem;
import org.eclipse.emf.test.common.reification.ReificationPackage;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Link Item</b></em>'.
* <!-- end-user-doc -->
*
* @generated
*/
public class LinkItemImpl extends BidirectionalImpl<LinkItem> implements LinkItem
{
/**
* The empty value for the '{@link #getValues() <em>Values</em>}' array accessor.
* This is specialized for the more specific element type known in this context.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getValues()
* @generated
* @ordered
*/
protected static final LinkItem[] VALUES_EEMPTY_ARRAY = new LinkItem [0];
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected LinkItemImpl()
{
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass()
{
return ReificationPackage.Literals.LINK_ITEM;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* This is specialized for the more specific type known in this context.
* @generated
*/
@Override
public NotificationChain basicSetIn(LinkItem newIn, NotificationChain msgs)
{
return super.basicSetIn(newIn, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* This is specialized for the more specific type known in this context.
* @generated
*/
@Override
public NotificationChain basicSetOut(LinkItem newOut, NotificationChain msgs)
{
return super.basicSetOut(newOut, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* This is specialized for the more specific type known in this context.
* @generated
*/
@Override
public void setValue(LinkItem newValue)
{
super.setValue(newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* This is specialized for the more specific element type known in this context.
* @generated
*/
@Override
public LinkItem[] getValues()
{
if (values == null || values.isEmpty()) return VALUES_EEMPTY_ARRAY;
BasicEList<LinkItem> list = (BasicEList<LinkItem>)values;
list.shrink();
return (LinkItem[])list.data();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* This is specialized for the more specific element type known in this context.
* @generated
*/
@Override
public EList<LinkItem> getValuesList()
{
if (values == null)
{
values = new EObjectResolvingEList<LinkItem>(LinkItem.class, this, ReificationPackage.LINK_ITEM__VALUES);
}
return values;
}
} //LinkItemImpl