code: @Override
      protected WeldCreationalContext<T> getCreationalContext(ManagedObjectInvocationContext<T> invocationContext, boolean nonContextual) throws ManagedObjectException {
  
          ManagedObjectContext moc;
          // for managed bean case, if invocation context is not null, use that
          if (invocationContext != null) {
              moc = invocationContext.getManagedObjectContext();
  
          } else {
              //otherwise, use the one created when creating this object(annotated with scope)
              moc = createContext(nonContextual);
          }
          @SuppressWarnings("unchecked")
          WeldCreationalContext<T> creationalContext = moc.getContextData(WeldCreationalContext.class);
          return creationalContext;
      }
docs: Create a new non-Contextual CreationalContext
  
  @throws ManagedObjectException