
org.nasdanika.models.java.impl.SourceImpl Maven / Gradle / Ivy
/**
*/
package org.nasdanika.models.java.impl;
import java.util.Collection;
import java.util.List;
import java.util.function.Function;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.util.InternalEList;
import org.nasdanika.common.Util;
import org.nasdanika.models.coverage.Coverage;
import org.nasdanika.models.java.Annotation;
import org.nasdanika.models.java.Comment;
import org.nasdanika.models.java.JavaPackage;
import org.nasdanika.models.java.Reference;
import org.nasdanika.models.java.Source;
/**
*
* An implementation of the model object 'Source'.
*
*
* The following features are implemented:
*
*
* - {@link org.nasdanika.models.java.impl.SourceImpl#getCoverage Coverage}
* - {@link org.nasdanika.models.java.impl.SourceImpl#getReferences References}
* - {@link org.nasdanika.models.java.impl.SourceImpl#getAnnotations Annotations}
* - {@link org.nasdanika.models.java.impl.SourceImpl#getComment Comment}
*
*
* @generated
*/
public class SourceImpl extends org.nasdanika.models.source.impl.SourceImpl implements Source {
/**
*
*
* @generated
*/
protected SourceImpl() {
super();
}
/**
*
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return JavaPackage.Literals.SOURCE;
}
/**
*
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public EList getCoverage() {
return (EList)eDynamicGet(JavaPackage.SOURCE__COVERAGE, JavaPackage.Literals.SOURCE__COVERAGE, true, true);
}
/**
*
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public EList getReferences() {
return (EList)eDynamicGet(JavaPackage.SOURCE__REFERENCES, JavaPackage.Literals.SOURCE__REFERENCES, true, true);
}
/**
*
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public EList getAnnotations() {
return (EList)eDynamicGet(JavaPackage.SOURCE__ANNOTATIONS, JavaPackage.Literals.SOURCE__ANNOTATIONS, true, true);
}
/**
*
*
* @generated
*/
@Override
public Comment getComment() {
return (Comment)eDynamicGet(JavaPackage.SOURCE__COMMENT, JavaPackage.Literals.SOURCE__COMMENT, true, true);
}
/**
*
*
* @generated
*/
public NotificationChain basicSetComment(Comment newComment, NotificationChain msgs) {
msgs = eDynamicInverseAdd((InternalEObject)newComment, JavaPackage.SOURCE__COMMENT, msgs);
return msgs;
}
/**
*
*
* @generated
*/
@Override
public void setComment(Comment newComment) {
eDynamicSet(JavaPackage.SOURCE__COMMENT, JavaPackage.Literals.SOURCE__COMMENT, newComment);
}
/**
* Generates a list of sources from contents.
* When merging, source ranges are used to replace fragments in the original source.
* @param tokenSource
* @return
*/
@Override
protected List generateContents(Function tokenSource, int indent) {
List contents = super.generateContents(tokenSource, indent);
Comment comment = getComment();
if (comment != null) {
String text = comment.getComment();
if (!Util.isBlank(text)) {
StringBuilder builder = indent(indent).append(text);
if (!isMerging()) {
builder.append(System.lineSeparator());
}
contents.add(org.nasdanika.models.source.Source.create(builder, comment));
}
}
for (Annotation annotation: getAnnotations()) {
contents.add(org.nasdanika.models.source.Source.create(annotationPrefix(indent) + annotation.generate(tokenSource, indent) + annotationSuffix(indent), annotation));
}
return contents;
}
protected String annotationSuffix(int indent) {
return " ";
}
protected String annotationPrefix(int indent) {
return "";
}
/**
*
*
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case JavaPackage.SOURCE__REFERENCES:
return ((InternalEList>)getReferences()).basicRemove(otherEnd, msgs);
case JavaPackage.SOURCE__ANNOTATIONS:
return ((InternalEList>)getAnnotations()).basicRemove(otherEnd, msgs);
case JavaPackage.SOURCE__COMMENT:
return basicSetComment(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
*
*
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case JavaPackage.SOURCE__COVERAGE:
return getCoverage();
case JavaPackage.SOURCE__REFERENCES:
return getReferences();
case JavaPackage.SOURCE__ANNOTATIONS:
return getAnnotations();
case JavaPackage.SOURCE__COMMENT:
return getComment();
}
return super.eGet(featureID, resolve, coreType);
}
/**
*
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case JavaPackage.SOURCE__COVERAGE:
getCoverage().clear();
getCoverage().addAll((Collection extends Coverage>)newValue);
return;
case JavaPackage.SOURCE__REFERENCES:
getReferences().clear();
getReferences().addAll((Collection extends Reference>)newValue);
return;
case JavaPackage.SOURCE__ANNOTATIONS:
getAnnotations().clear();
getAnnotations().addAll((Collection extends Annotation>)newValue);
return;
case JavaPackage.SOURCE__COMMENT:
setComment((Comment)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
*
*
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case JavaPackage.SOURCE__COVERAGE:
getCoverage().clear();
return;
case JavaPackage.SOURCE__REFERENCES:
getReferences().clear();
return;
case JavaPackage.SOURCE__ANNOTATIONS:
getAnnotations().clear();
return;
case JavaPackage.SOURCE__COMMENT:
setComment((Comment)null);
return;
}
super.eUnset(featureID);
}
/**
*
*
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case JavaPackage.SOURCE__COVERAGE:
return !getCoverage().isEmpty();
case JavaPackage.SOURCE__REFERENCES:
return !getReferences().isEmpty();
case JavaPackage.SOURCE__ANNOTATIONS:
return !getAnnotations().isEmpty();
case JavaPackage.SOURCE__COMMENT:
return getComment() != null;
}
return super.eIsSet(featureID);
}
} //SourceImpl
© 2015 - 2025 Weber Informatics LLC | Privacy Policy