Skip to content

Commit

Permalink
FORGE-570
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Sep 20, 2012
1 parent 8162d2f commit 30de564
Showing 1 changed file with 21 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,13 @@

/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
*
*/
public abstract class AbstractJavaSourceMemberHolder<O extends JavaSource<O>> extends AbstractJavaSource<O> implements
MethodHolder<O>, FieldHolder<O>
{
public AbstractJavaSourceMemberHolder(JavaSource<?> enclosingType, final Document document, final CompilationUnit unit, BodyDeclaration declaration)
public AbstractJavaSourceMemberHolder(JavaSource<?> enclosingType, final Document document,
final CompilationUnit unit, BodyDeclaration declaration)
{
super(enclosingType, document, unit, declaration);
}
Expand All @@ -47,7 +48,7 @@ public AbstractJavaSourceMemberHolder(JavaSource<?> enclosingType, final Documen
public Field<O> addField()
{
Field<O> field = new FieldImpl<O>((O) this);
getBodyDeclaration().bodyDeclarations().add(field.getInternal());
addField(field);
return field;
}

Expand All @@ -56,10 +57,26 @@ public Field<O> addField()
public Field<O> addField(final String declaration)
{
Field<O> field = new FieldImpl<O>((O) this, declaration);
getBodyDeclaration().bodyDeclarations().add(field.getInternal());
addField(field);
return field;
}

@SuppressWarnings("unchecked")
private void addField(Field<O> field)
{
List<Object> bodyDeclarations = getBodyDeclaration().bodyDeclarations();
int idx = 0;
for (Object object : bodyDeclarations)
{
if (!(object instanceof FieldDeclaration))
{
break;
}
idx++;
}
bodyDeclarations.add(idx, field.getInternal());
}

@Override
public List<Member<O, ?>> getMembers()
{
Expand Down

0 comments on commit 30de564

Please sign in to comment.