/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.forge.roaster.model.source;
import org.jboss.forge.roaster.model.EnumConstant;
/**
* Represents one of the constant members of a {@link JavaEnumSource}.
*/
public interface EnumConstantSource extends EnumConstant<JavaEnumSource>,
AnnotationTargetSource<JavaEnumSource, EnumConstantSource>,
NamedSource<EnumConstantSource>, JavaDocCapableSource<EnumConstantSource>
{
/**
* Represents the anonymous subclass "body" of an {@link EnumConstantSource}.
*/
interface Body extends EnumConstant.ReadBody<Body>, JavaSource<Body>, FieldHolderSource<Body>,
MethodHolderSource<Body>, TypeHolderSource<Body>
{
}
/**
* Set the constructor arguments for this enum constant.
*/
EnumConstantSource setConstructorArguments(String... literalArguments);
@Override
EnumConstantSource.Body getBody();
/**
* Remove the {@link Body} of this enum constant.
*/
EnumConstantSource removeBody();
}