blob: 938f70af29bb3c968b4177be95d998cff44d1a08 [file] [log] [blame]
/**
* Copyright (c) 2006 IBM Corporation 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
*
* Contributors:
* IBM - Initial API and implementation
*/
package org.eclipse.emf.codegen.merge.java.facade.jdom;
import org.eclipse.jdt.core.jdom.IDOMInitializer;
import org.eclipse.jdt.core.jdom.IDOMMember;
import org.eclipse.emf.codegen.merge.java.facade.JMember;
/**
* @since 2.2.0
*/
@SuppressWarnings("deprecation")
public abstract class JDOMJMember extends JDOMJNode implements JMember
{
/**
* @param member
*/
protected JDOMJMember(IDOMMember member)
{
super(member);
}
@Override
protected IDOMMember getWrappedObject()
{
return (IDOMMember)super.getWrappedObject();
}
@Override
public int getFlags()
{
return getWrappedObject().getFlags();
}
@Override
public void setFlags(int flags)
{
getWrappedObject().setFlags(flags);
}
public String getComment()
{
return getWrappedObject().getComment();
}
public void setComment(String comment)
{
getWrappedObject().setComment(comment);
}
@Override
public String getContents()
{
String contents = super.getContents();
return getWrappedObject().getNextNode() instanceof IDOMInitializer ?
splitLastComment(contents)[0] :
contents;
}
protected String[] splitLastComment(String contents)
{
String[] split = new String[]{contents, ""};
char[] characters = contents.toCharArray();
LOOP:
for (int i=characters.length-1; i>=0; i--)
{
switch (characters[i])
{
case ';':
case '}':
{
for (; i < characters.length; i++)
{
switch (characters[i])
{
case '/':
{
while (characters[i-1] == ' ' || characters[i-1] == 9)
{
i--;
}
split[0] = new String(characters, 0, i);
split[1] = new String(characters, i, characters.length-i);
break LOOP;
}
}
}
break LOOP;
}
}
}
return split;
}
}