/**
* (C) Copyright 2013 Jabylon (http://www.jabylon.org) 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.jabylon.properties.impl;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.jabylon.properties.Project;
import org.jabylon.properties.ProjectVersion;
import org.jabylon.properties.PropertiesPackage;
import org.jabylon.properties.ScanConfiguration;
import org.jabylon.properties.Workspace;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Project</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.jabylon.properties.impl.ProjectImpl#getRepositoryURI <em>Repository URI</em>}</li>
* <li>{@link org.jabylon.properties.impl.ProjectImpl#getPropertyType <em>Property Type</em>}</li>
* <li>{@link org.jabylon.properties.impl.ProjectImpl#getTeamProvider <em>Team Provider</em>}</li>
* <li>{@link org.jabylon.properties.impl.ProjectImpl#isTerminology <em>Terminology</em>}</li>
* <li>{@link org.jabylon.properties.impl.ProjectImpl#getAnnouncement <em>Announcement</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class ProjectImpl extends ResolvableImpl<Workspace, ProjectVersion> implements Project {
/**
* The default value of the '{@link #getRepositoryURI() <em>Repository URI</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRepositoryURI()
* @generated
* @ordered
*/
protected static final URI REPOSITORY_URI_EDEFAULT = null;
/**
* The default value of the '{@link #getPropertyType() <em>Property Type</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPropertyType()
* @generated
* @ordered
*/
protected static final String PROPERTY_TYPE_EDEFAULT = null;
/**
* The default value of the '{@link #getTeamProvider() <em>Team Provider</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTeamProvider()
* @generated
* @ordered
*/
protected static final String TEAM_PROVIDER_EDEFAULT = null;
/**
* The default value of the '{@link #isTerminology() <em>Terminology</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isTerminology()
* @generated
* @ordered
*/
protected static final boolean TERMINOLOGY_EDEFAULT = false;
/**
* The default value of the '{@link #getAnnouncement() <em>Announcement</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAnnouncement()
* @generated
* @ordered
*/
protected static final String ANNOUNCEMENT_EDEFAULT = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ProjectImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return PropertiesPackage.Literals.PROJECT;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* This is specialized for the more specific type known in this context.
* @generated
*/
@Override
public NotificationChain basicSetParent(Workspace newParent, NotificationChain msgs) {
return super.basicSetParent(newParent, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public URI getRepositoryURI() {
return (URI)eDynamicGet(PropertiesPackage.PROJECT__REPOSITORY_URI, PropertiesPackage.Literals.PROJECT__REPOSITORY_URI, true, true);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setRepositoryURI(URI newRepositoryURI) {
eDynamicSet(PropertiesPackage.PROJECT__REPOSITORY_URI, PropertiesPackage.Literals.PROJECT__REPOSITORY_URI, newRepositoryURI);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getPropertyType() {
return (String)eDynamicGet(PropertiesPackage.PROJECT__PROPERTY_TYPE, PropertiesPackage.Literals.PROJECT__PROPERTY_TYPE, true, true);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setPropertyType(String newPropertyType) {
eDynamicSet(PropertiesPackage.PROJECT__PROPERTY_TYPE, PropertiesPackage.Literals.PROJECT__PROPERTY_TYPE, newPropertyType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getTeamProvider() {
return (String)eDynamicGet(PropertiesPackage.PROJECT__TEAM_PROVIDER, PropertiesPackage.Literals.PROJECT__TEAM_PROVIDER, true, true);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setTeamProvider(String newTeamProvider) {
eDynamicSet(PropertiesPackage.PROJECT__TEAM_PROVIDER, PropertiesPackage.Literals.PROJECT__TEAM_PROVIDER, newTeamProvider);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isTerminology() {
return (Boolean)eDynamicGet(PropertiesPackage.PROJECT__TERMINOLOGY, PropertiesPackage.Literals.PROJECT__TERMINOLOGY, true, true);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setTerminology(boolean newTerminology) {
eDynamicSet(PropertiesPackage.PROJECT__TERMINOLOGY, PropertiesPackage.Literals.PROJECT__TERMINOLOGY, newTerminology);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getAnnouncement() {
return (String)eDynamicGet(PropertiesPackage.PROJECT__ANNOUNCEMENT, PropertiesPackage.Literals.PROJECT__ANNOUNCEMENT, true, true);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setAnnouncement(String newAnnouncement) {
eDynamicSet(PropertiesPackage.PROJECT__ANNOUNCEMENT, PropertiesPackage.Literals.PROJECT__ANNOUNCEMENT, newAnnouncement);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public void fullScan(ScanConfiguration configuration) {
for (ProjectVersion version : getChildren()) {
version.fullScan(configuration, null);
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public URI getBase() {
if(getParent()==null)
return null;
if(getParent().getRoot()==null)
return null;
return getParent().getRoot().appendSegment(getName());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case PropertiesPackage.PROJECT__REPOSITORY_URI:
return getRepositoryURI();
case PropertiesPackage.PROJECT__PROPERTY_TYPE:
return getPropertyType();
case PropertiesPackage.PROJECT__TEAM_PROVIDER:
return getTeamProvider();
case PropertiesPackage.PROJECT__TERMINOLOGY:
return isTerminology();
case PropertiesPackage.PROJECT__ANNOUNCEMENT:
return getAnnouncement();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case PropertiesPackage.PROJECT__REPOSITORY_URI:
setRepositoryURI((URI)newValue);
return;
case PropertiesPackage.PROJECT__PROPERTY_TYPE:
setPropertyType((String)newValue);
return;
case PropertiesPackage.PROJECT__TEAM_PROVIDER:
setTeamProvider((String)newValue);
return;
case PropertiesPackage.PROJECT__TERMINOLOGY:
setTerminology((Boolean)newValue);
return;
case PropertiesPackage.PROJECT__ANNOUNCEMENT:
setAnnouncement((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case PropertiesPackage.PROJECT__REPOSITORY_URI:
setRepositoryURI(REPOSITORY_URI_EDEFAULT);
return;
case PropertiesPackage.PROJECT__PROPERTY_TYPE:
setPropertyType(PROPERTY_TYPE_EDEFAULT);
return;
case PropertiesPackage.PROJECT__TEAM_PROVIDER:
setTeamProvider(TEAM_PROVIDER_EDEFAULT);
return;
case PropertiesPackage.PROJECT__TERMINOLOGY:
setTerminology(TERMINOLOGY_EDEFAULT);
return;
case PropertiesPackage.PROJECT__ANNOUNCEMENT:
setAnnouncement(ANNOUNCEMENT_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case PropertiesPackage.PROJECT__REPOSITORY_URI:
return REPOSITORY_URI_EDEFAULT == null ? getRepositoryURI() != null : !REPOSITORY_URI_EDEFAULT.equals(getRepositoryURI());
case PropertiesPackage.PROJECT__PROPERTY_TYPE:
return PROPERTY_TYPE_EDEFAULT == null ? getPropertyType() != null : !PROPERTY_TYPE_EDEFAULT.equals(getPropertyType());
case PropertiesPackage.PROJECT__TEAM_PROVIDER:
return TEAM_PROVIDER_EDEFAULT == null ? getTeamProvider() != null : !TEAM_PROVIDER_EDEFAULT.equals(getTeamProvider());
case PropertiesPackage.PROJECT__TERMINOLOGY:
return isTerminology() != TERMINOLOGY_EDEFAULT;
case PropertiesPackage.PROJECT__ANNOUNCEMENT:
return ANNOUNCEMENT_EDEFAULT == null ? getAnnouncement() != null : !ANNOUNCEMENT_EDEFAULT.equals(getAnnouncement());
}
return super.eIsSet(featureID);
}
} //ProjectImpl