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

org.snapscript.core.attribute.AttributeResultBinder Maven / Gradle / Ivy

package org.snapscript.core.attribute;

import java.util.concurrent.atomic.AtomicReference;

import org.snapscript.core.scope.Scope;

public class AttributeResultBinder {
   
   private final AtomicReference reference;
   private final AttributeResultBuilder resolver;
   
   public AttributeResultBinder(Attribute attribute) {
      this.reference = new AtomicReference();
      this.resolver = new AttributeResultBuilder(attribute);
   }
   
   public AttributeResult bind(Scope scope) {
      AttributeResult result = reference.get();
      
      if(result == null) {
         result = resolver.create(scope);
         reference.set(result);
      }
      return result;
   }



}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy