All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.snapscript.core.function.EmptyFunction Maven / Gradle / Ivy

package org.snapscript.core.function;

import static java.util.Collections.EMPTY_LIST;
import static org.snapscript.core.ModifierType.ABSTRACT;
import static org.snapscript.core.ModifierType.FUNCTION;
import static org.snapscript.core.Reserved.METHOD_CLOSURE;
import static org.snapscript.core.constraint.Constraint.NONE;

import java.util.ArrayList;
import java.util.List;

import org.snapscript.core.annotation.Annotation;
import org.snapscript.core.constraint.Constraint;
import org.snapscript.core.type.Type;

public class EmptyFunction implements Function {

   private final List annotations;
   private final Signature signature;
   private final String name;
   private final int modifiers;

   public EmptyFunction(Signature signature){
      this(signature, METHOD_CLOSURE);
   }
   
   public EmptyFunction(Signature signature, String name){
      this(signature, name, ABSTRACT.mask);
   }

   public EmptyFunction(Signature signature, String name, int modifiers){
      this.annotations = new ArrayList();
      this.signature = signature;
      this.modifiers = modifiers;
      this.name = name;
   }
   
   @Override
   public int getModifiers(){
      return modifiers & FUNCTION.mask;
   }
   
   @Override
   public Type getHandle() {
      return null;
   }
   
   @Override
   public Constraint getConstraint() {
      return NONE;
   }
   
   @Override
   public Type getSource() {
      return null;
   }
   
   @Override
   public Object getProxy() {
      return null;
   }
   
   @Override
   public Object getProxy(Class require) {
      return null;
   }
   
   @Override
   public String getName(){
      return name;
   }
   
   @Override
   public Signature getSignature(){
      return signature;
   }
   
   @Override
   public List getGenerics() {
      return EMPTY_LIST;
   }
   
   @Override
   public List getAnnotations() {
      return annotations;
   }
   
   @Override
   public Invocation getInvocation(){
      return null;
   }
   
   @Override
   public String getDescription() {
      return name + signature;
   }
   
   @Override
   public String toString(){
      return name + signature;
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy