/*
 * JBoss, the OpenSource J2EE webOS
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */
package org.jboss.aspects.versioned;

import org.jboss.aop.InstanceAdvised;
import org.jboss.util.id.GUID;

/**
 *
 *  @author <a href="mailto:bill@jboss.org">Bill Burke</a>
 *  @version $Revision: 1.1.4.3 $
 */
public abstract class VersionManager
{
   public static final String VERSION_MANAGER = "VERSION_MANAGER";
   public static final String VERSION_ID = "VERSION_ID";


   public static GUID getGUID(InstanceAdvised obj)
   {
      return (GUID)obj._getInstanceAdvisor().getMetaData().getMetaData(VERSION_MANAGER, VERSION_ID);
   }

   public abstract boolean isVersioned(Object advised);
   public abstract Object makeVersioned(Object obj) throws Exception;
}
