/*
*
*/
package org.eclipse.papyrus.uml.diagram.common.parser.custom;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.common.util.EList;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Stereotype;
public class OnlyStereotypesNamesParser implements IParser {
public IContentAssistProcessor getCompletionProcessor(IAdaptable element) {
return null;
}
public String getEditString(IAdaptable element, int flags) {
return "";
}
public ICommand getParseCommand(IAdaptable element, String newString, int flags) {
return null;
}
public String getPrintString(IAdaptable element, int flags) {
Element el = (Element)element.getAdapter(Element.class);
if(el != null) {
EList<Stereotype> stereotypes = el.getAppliedStereotypes();
if(stereotypes == null) {
return null;
}
if(stereotypes.size() <= 0) {
return null;
}
String pString = "" + ((char)171);
for(java.util.Iterator<Stereotype> it = stereotypes.iterator(); it.hasNext();) {
pString += it.next().getName();
if(it.hasNext()) {
pString += ", ";
}
}
pString += ((char)187);
return pString;
}
return null;
}
public boolean isAffectingEvent(Object event, int flags) {
return false;
}
public IParserEditStatus isValidEditString(IAdaptable element, String editString) {
// always return
return new ParserEditStatusimpl();
}
class ParserEditStatusimpl implements IParserEditStatus {
public IStatus[] getChildren() {
return new IStatus[0];
}
public int getCode() {
return 0;
}
public Throwable getException() {
return null;
}
public String getMessage() {
return "Non editable.";
}
public String getPlugin() {
return null;
}
public int getSeverity() {
return IStatus.OK;
}
public boolean isMultiStatus() {
return false;
}
public boolean isOK() {
return false;
}
public boolean matches(int severityMask) {
return false;
}
}
}