ServiceDeclaration.java
package net.morimekta.providence.reflect.model;
import net.morimekta.providence.reflect.parser.ThriftToken;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List;
/**
* <pre>{@code
* service ::= 'service' {name} ('extends' {extending})? '{' {function}* '}' {annotations}?
* }</pre>
*/
public class ServiceDeclaration extends Declaration {
private final ThriftToken serviceToken;
private final ThriftToken extending;
private final List<MethodDeclaration> methods;
public ServiceDeclaration(@Nullable String documentation,
@Nonnull ThriftToken serviceToken,
@Nonnull ThriftToken name,
@Nullable ThriftToken extending,
@Nonnull List<MethodDeclaration> methods,
@Nullable List<AnnotationDeclaration> annotations) {
super(documentation, name, annotations);
this.serviceToken = serviceToken;
this.extending = extending;
this.methods = methods;
}
@Nonnull
public ThriftToken getServiceToken() {
return serviceToken;
}
@Nullable
public String getExtending() {
if (extending != null) {
return extending.toString();
}
return null;
}
@Nullable
public ThriftToken getExtendingToken() {
return extending;
}
@Nonnull
public List<MethodDeclaration> getMethods() {
return methods;
}
}