Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License").
   * You may not use this file except in compliance with the License.
   * A copy of the License is located at
   *
   *  http://aws.amazon.com/apache2.0
   *
  * or in the "license" file accompanying this file. This file is distributed
  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  * express or implied. See the License for the specific language governing
  * permissions and limitations under the License.
  */
 package com.amazonaws.services.simpleworkflow.flow.spring;
 
 import java.util.List;
 import java.util.Map;
 
 import  org.springframework.beans.BeansException;
 import  org.springframework.beans.factory.ObjectFactory;
 import  org.springframework.beans.factory.config.AutowireCapableBeanFactory;
 import  org.springframework.beans.factory.config.Scope;
 import  org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import  org.springframework.beans.factory.support.DefaultListableBeanFactory;
 import  org.springframework.context.ApplicationContext;
 import  org.springframework.context.ApplicationContextAware;
 
 
 public class WorkflowScope implements Scope, ApplicationContextAware {
 
     public static final String NAME = "workflow";
 
     
     private static WorkflowExecutionLocal<Map<StringObject>> objects = new WorkflowExecutionLocal<Map<StringObject>>() {
 
         @Override
         protected Map<StringObjectinitialValue() {
             return new HashMap<StringObject>();
         }
     };
 
 
         @Override
         protected List<RunnableinitialValue() {
             return new ArrayList<Runnable>();
         }
         
     };
 
     public static void setDecisionContext(DecisionContext context) {
         CurrentDecisionContext.set(context);
         .get().clear();
         set(.context);
     }
 
     public static void removeDecisionContext() {
         for (Runnable callback.get()) {
             callback.run();
         }
         CurrentDecisionContext.unset();
     }
     
     @Override
     public Object get(String name, ObjectFactory<?> objectFactory) {
         Map<StringObjectmap = .get();
         Object result = map.get(name);
         if (result == null) {
             result = objectFactory.getObject();
             map.put(nameresult);
         }
         return result;
     }
 
     private static void set(String nameObject bean) {
         Map<StringObjectmap = .get();
         map.put(namebean);
     }
 
    
    
    @Override
    public String getConversationId() {
    }
    @Override
    public void registerDestructionCallback(String nameRunnable callback) {
        .get().add(callback);
    }
    @Override
    public Object remove(String name) {
        Map<StringObjectmap = .get();
        return map.remove(name);
    }
    @Override
    public Object resolveContextualObject(String name) {
        //TODO: Understand why WorkflowScopeBeans cannot be returned from this method
        return null;
    }
    @Override
    public void setApplicationContext(ApplicationContext applicationContextthrows BeansException {
        AutowireCapableBeanFactory autowireCapableBeanFactory = applicationContext.getAutowireCapableBeanFactory();
        if (!(autowireCapableBeanFactory instanceof DefaultListableBeanFactory)) {
            throw new IllegalArgumentException(
                    "The implementation returned from applicationContext.getAutowireCapableBeanFactory() "
                            + "doesn't implement DefaultListableBeanFactory");
        }
        DefaultListableBeanFactory factory = (DefaultListableBeanFactory) autowireCapableBeanFactory;
    }
    private void registerBean(DefaultListableBeanFactory factoryString beanNameClass<?> beanClass) {
        BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(beanClass);
        builder.setScope();
        factory.registerBeanDefinition(beanNamebuilder.getBeanDefinition());
    }
New to GrepCode? Check out our FAQ X