package BHL7.behavior;
/*Generated by MPS */
import jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import jetbrains.mps.core.aspects.behaviour.api.BehaviorRegistry;
import jetbrains.mps.smodel.language.ConceptRegistry;
import jetbrains.mps.core.aspects.behaviour.api.SMethod;
import jetbrains.mps.core.aspects.behaviour.SMethodBuilder;
import jetbrains.mps.core.aspects.behaviour.SJavaCompoundTypeImpl;
import jetbrains.mps.core.aspects.behaviour.SModifiersImpl;
import jetbrains.mps.core.aspects.behaviour.AccessPrivileges;
import java.util.List;
import java.util.Arrays;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.mps.openapi.model.SNode;
import UtilSolution.util.TestResults;
import jetbrains.mps.internal.collections.runtime.Sequence;
import java.util.Collections;
import jetbrains.mps.internal.collections.runtime.ISelector;
import jetbrains.mps.core.aspects.behaviour.api.SConstructor;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.core.aspects.behaviour.api.BHMethodNotFoundException;
public final class A__BehaviorDescriptor extends BaseBHDescriptor {
private static final SAbstractConcept CONCEPT = MetaAdapterFactory.getConcept(0x4239359f64574d2aL, 0xb1e014d3f948db39L, 0x559729dec0466d3cL, "BHL7.structure.A");
private static final BehaviorRegistry REGISTRY = ConceptRegistry.getInstance().getBehaviorRegistry();
public static final SMethod<Integer> nonVirtualMethod_id5mnatV0hAPp = new SMethodBuilder<Integer>(new SJavaCompoundTypeImpl(Integer.TYPE)).name("nonVirtualMethod").modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("5mnatV0hAPp").registry(REGISTRY).build();
public static final SMethod<Object> virtualMethod_id5mnatV0hAPC = new SMethodBuilder<Object>(new SJavaCompoundTypeImpl(Object.class)).name("virtualMethod").modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("5mnatV0hAPC").registry(REGISTRY).build();
public static final SMethod<Integer> staticMethod_id5mnatV0hAQH = new SMethodBuilder<Integer>(new SJavaCompoundTypeImpl(Integer.TYPE)).name("staticMethod").modifiers(SModifiersImpl.create(1, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("5mnatV0hAQH").registry(REGISTRY).build();
public static final SMethod<Object> staticVirtualMethod_id5mnatV0hATt = new SMethodBuilder<Object>(new SJavaCompoundTypeImpl(Object.class)).name("staticVirtualMethod").modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("5mnatV0hATt").registry(REGISTRY).build();
public static final SMethod<Void> justVoidReturnTypeMethod1_id5mnatV0hB9t = new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class)).name("justVoidReturnTypeMethod1").modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("5mnatV0hB9t").registry(REGISTRY).build();
public static final SMethod<Void> justVoidReturnTypeMethod2_id4XEqvthVyKi = new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class)).name("justVoidReturnTypeMethod2").modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("4XEqvthVyKi").registry(REGISTRY).build();
public static final SMethod<Boolean> boolMethod1_id2eC$PxWCtoT = new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE)).name("boolMethod1").modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("2eC$PxWCtoT").registry(REGISTRY).build();
public static final SMethod<Boolean> boolMethod2_idjZ8XPdgmd$ = new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE)).name("boolMethod2").modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("jZ8XPdgmd$").registry(REGISTRY).build();
public static final SMethod<Iterable<Boolean>> seqMethod_id2eC$PxWCGmD = new SMethodBuilder<Iterable<Boolean>>(new SJavaCompoundTypeImpl((Class<Iterable<Boolean>>) ((Class) Object.class))).name("seqMethod").modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("2eC$PxWCGmD").registry(REGISTRY).build();
public static final SMethod<Iterable<Boolean>> seqMethod2_id2eC$PxWDDfD = new SMethodBuilder<Iterable<Boolean>>(new SJavaCompoundTypeImpl((Class<Iterable<Boolean>>) ((Class) Object.class))).name("seqMethod2").modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC)).concept(CONCEPT).id("2eC$PxWDDfD").registry(REGISTRY).build();
private static final List<SMethod<?>> BH_METHODS = Arrays.<SMethod<?>>asList(nonVirtualMethod_id5mnatV0hAPp, virtualMethod_id5mnatV0hAPC, staticMethod_id5mnatV0hAQH, staticVirtualMethod_id5mnatV0hATt, justVoidReturnTypeMethod1_id5mnatV0hB9t, justVoidReturnTypeMethod2_id4XEqvthVyKi, boolMethod1_id2eC$PxWCtoT, boolMethod2_idjZ8XPdgmd$, seqMethod_id2eC$PxWCGmD, seqMethod2_id2eC$PxWDDfD);
private static void ___init___(@NotNull SNode __thisNode__) {
}
/*package*/ static int nonVirtualMethod_id5mnatV0hAPp(@NotNull SNode __thisNode__) {
return TestResults.DEFAULT_RETURN_VALUE;
}
/*package*/ static Object virtualMethod_id5mnatV0hAPC(@NotNull SNode __thisNode__) {
return TestResults.POLYMORPHIC_PARENT;
}
/*package*/ static int staticMethod_id5mnatV0hAQH(@NotNull SAbstractConcept __thisConcept__) {
return TestResults.DEFAULT_RETURN_VALUE;
}
/*package*/ static Object staticVirtualMethod_id5mnatV0hATt(@NotNull SAbstractConcept __thisConcept__) {
return TestResults.POLYMORPHIC_PARENT;
}
/*package*/ static void justVoidReturnTypeMethod1_id5mnatV0hB9t(@NotNull SNode __thisNode__) {
}
/*package*/ static void justVoidReturnTypeMethod2_id4XEqvthVyKi(@NotNull SNode __thisNode__) {
A__BehaviorDescriptor.staticMethod_id5mnatV0hAQH.invoke(__thisNode__.getConcept());
A__BehaviorDescriptor.boolMethod2_idjZ8XPdgmd$.invoke(__thisNode__);
A__BehaviorDescriptor.boolMethod2_idjZ8XPdgmd$.invoke(__thisNode__);
SNode nodeA = null;
A__BehaviorDescriptor.boolMethod2_idjZ8XPdgmd$.invoke(nodeA);
}
/*package*/ static boolean boolMethod1_id2eC$PxWCtoT(@NotNull SNode __thisNode__) {
return ((boolean) A__BehaviorDescriptor.boolMethod2_idjZ8XPdgmd$.invoke(__thisNode__));
}
/*package*/ static boolean boolMethod2_idjZ8XPdgmd$(@NotNull SNode __thisNode__) {
return true;
}
/*package*/ static Iterable<Boolean> seqMethod_id2eC$PxWCGmD(@NotNull final SNode __thisNode__) {
return Sequence.fromIterable(Sequence.fromIterable(Collections.<Boolean>emptyList())).select(new ISelector<Boolean, Boolean>() {
public Boolean select(Boolean it) {
return ((boolean) A__BehaviorDescriptor.boolMethod1_id2eC$PxWCtoT.invoke(__thisNode__));
}
});
}
/*package*/ static Iterable<Boolean> seqMethod2_id2eC$PxWDDfD(@NotNull final SNode __thisNode__) {
return Sequence.fromIterable(Sequence.fromIterable(Collections.<Boolean>emptyList())).select(new ISelector<Boolean, Boolean>() {
public Boolean select(Boolean it) {
return ((boolean) A__BehaviorDescriptor.boolMethod1_id2eC$PxWCtoT.invoke(__thisNode__));
}
});
}
/*package*/ A__BehaviorDescriptor() {
super(REGISTRY);
}
@Override
protected void initNode(@NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
___init___(node);
}
@Override
protected <T> T invokeSpecial0(@NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
int methodIndex = BH_METHODS.indexOf(method);
if (methodIndex < 0) {
throw new BHMethodNotFoundException(this, method);
}
switch (methodIndex) {
case 0:
return (T) ((Integer) nonVirtualMethod_id5mnatV0hAPp(node));
case 1:
return (T) ((Object) virtualMethod_id5mnatV0hAPC(node));
case 4:
justVoidReturnTypeMethod1_id5mnatV0hB9t(node);
return null;
case 5:
justVoidReturnTypeMethod2_id4XEqvthVyKi(node);
return null;
case 6:
return (T) ((Boolean) boolMethod1_id2eC$PxWCtoT(node));
case 7:
return (T) ((Boolean) boolMethod2_idjZ8XPdgmd$(node));
case 8:
return (T) ((Iterable<Boolean>) seqMethod_id2eC$PxWCGmD(node));
case 9:
return (T) ((Iterable<Boolean>) seqMethod2_id2eC$PxWDDfD(node));
default:
throw new BHMethodNotFoundException(this, method);
}
}
@Override
protected <T> T invokeSpecial0(@NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
int methodIndex = BH_METHODS.indexOf(method);
if (methodIndex < 0) {
throw new BHMethodNotFoundException(this, method);
}
switch (methodIndex) {
case 2:
return (T) ((Integer) staticMethod_id5mnatV0hAQH(concept));
case 3:
return (T) ((Object) staticVirtualMethod_id5mnatV0hATt(concept));
default:
throw new BHMethodNotFoundException(this, method);
}
}
@NotNull
@Override
public List<SMethod<?>> getDeclaredMethods() {
return BH_METHODS;
}
@NotNull
@Override
public SAbstractConcept getConcept() {
return CONCEPT;
}
}