blob: f87d0e8fa5422917c40d533aaf77ab33e06ada8e [file] [log] [blame]
/*
* Copyright (c) 2010-2012 Eike Stepper (Loehne, Germany) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Ibrahim Sallam - initial API and implementation
*/
package org.eclipse.emf.cdo.server.internal.objectivity.utils;
import org.eclipse.emf.cdo.server.internal.objectivity.bundle.OM;
import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyCommitInfoHandler;
import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyObject;
import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyPackageHandler;
import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyPropertyMapHandler;
import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyScope;
import org.eclipse.emf.cdo.server.internal.objectivity.schema.ObjyBranchManager;
import org.eclipse.emf.cdo.server.internal.objectivity.schema.ObjyLockAreaManager;
import org.eclipse.emf.cdo.server.internal.objectivity.schema.ObjyResourceList;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import com.objy.db.ObjyRuntimeException;
import com.objy.db.app.ooId;
public class ObjyDb
{
public static final String CONFIGDB_NAME = "ConfigDb";
public static final String RESOURCELIST_NAME = "ResourceList";
public static final String RESOURCELIST_CONT_NAME = "ResourceListCont";
public static final String PACKAGESTORE_CONT_NAME = "PackageCont";
public static final String COMMITINFOSET_CONT_NAME = "CommitInfoCont";
public static final String COMMITINFOSET_NAME = "CommitInfoSet";
public static final String PROPERTYMAP_NAME = "PropertyMap";
public static final String PROPERTYMAP_CONT_NAME = "PropertyCont";
public static final String OBJYSTOREINFO_NAME = "ObjyStoreInfo";
public static final String DEFAULT_CONT_NAME = "_ooDefaultContObj"; // this is objy default cont name.
public static final String BRANCHMANAGER_NAME = "BranchManager";
public static final String BRANCHING_CONT_NAME = "BranchingCont";
public static final String LOCKAREAMANAGER_NAME = "LockAreaManager";
public static final String LOCKAREA_CONT_NAME = "LockAreaCont";
private static final ContextTracer TRACER_DEBUG = new ContextTracer(OM.DEBUG, ObjyDb.class);
// private static final ContextTracer TRACER_INFO = new ContextTracer(OM.INFO, ObjyDb.class);
private static final String PACKAGEMAP_NAME = "PackageMap";
/***
* Unitily functions..
*/
/***
* This function will return the resourceList after creation. Each repository (stored in its own DB) will have its own
* ResourceList.
*/
public static ObjyObject getOrCreateResourceList(String repositoryName)
{
if (TRACER_DEBUG.isEnabled())
{
TRACER_DEBUG.format("getOrCreateResourceList() for " + repositoryName); //$NON-NLS-1$
}
ObjyScope objyScope = new ObjyScope(repositoryName, ObjyDb.RESOURCELIST_CONT_NAME);
ObjyObject objyObject = null;
try
{
objyObject = objyScope.lookupObjyObject(ObjyDb.RESOURCELIST_NAME);
}
catch (ObjyRuntimeException ex)
{
// we need to create the resource.
objyObject = createResourceList(objyScope);
}
catch (Exception ex)
{
ex.printStackTrace();
}
return objyObject;
}
protected static ObjyObject createResourceList(ObjyScope objyScope)
{
if (TRACER_DEBUG.isEnabled())
{
TRACER_DEBUG.format("createResourceList()"); //$NON-NLS-1$
}
// TODO - this need refactoring...
ObjyObject resourceList = ObjyResourceList.create(objyScope.getScopeContOid());
objyScope.nameObj(ObjyDb.RESOURCELIST_NAME, resourceList);
return resourceList;
}
protected static ooId createCommitInfoList(ObjyScope objyScope)
{
// TODO - this need refactoring...
ooId commitInfoListId = ObjyCommitInfoHandler.create(objyScope.getScopeContOid());
objyScope.nameObj(ObjyDb.COMMITINFOSET_NAME, commitInfoListId);
return commitInfoListId;
}
public static ooId getOrCreateCommitInfoList(String repositoryName)
{
ObjyScope objyScope = new ObjyScope(repositoryName, ObjyDb.COMMITINFOSET_CONT_NAME);
ooId commitInfoListId = null;
try
{
commitInfoListId = objyScope.lookupObjectOid(ObjyDb.COMMITINFOSET_NAME);
}
catch (ObjyRuntimeException ex)
{
commitInfoListId = createCommitInfoList(objyScope);
}
catch (Exception ex)
{
ex.printStackTrace();
}
return commitInfoListId;
}
protected static ooId createPropertyMap(ObjyScope objyScope)
{
// TODO - this need refactoring...
ooId propertyMapId = ObjyPropertyMapHandler.create(objyScope.getScopeContOid());
objyScope.nameObj(ObjyDb.PROPERTYMAP_NAME, propertyMapId);
return propertyMapId;
}
public static ooId getOrCreatePropertyMap(String repositoryName)
{
ObjyScope objyScope = new ObjyScope(repositoryName, ObjyDb.PROPERTYMAP_CONT_NAME);
ooId propertyMapId = null;
try
{
propertyMapId = objyScope.lookupObjectOid(ObjyDb.PROPERTYMAP_NAME);
}
catch (ObjyRuntimeException ex)
{
propertyMapId = createPropertyMap(objyScope);
}
catch (Exception ex)
{
ex.printStackTrace();
}
return propertyMapId;
}
protected static ObjyBranchManager createBranchManager(ObjyScope objyScope)
{
ObjyBranchManager objyBranchManager = ObjyBranchManager.create(objyScope.getScopeContOid());
objyScope.nameObj(ObjyDb.BRANCHMANAGER_NAME, objyBranchManager.getOid());
return objyBranchManager;
}
public static ObjyBranchManager getOrCreateBranchManager(String repositoryName)
{
ObjyScope objyScope = new ObjyScope(repositoryName, ObjyDb.BRANCHING_CONT_NAME);
ObjyBranchManager objyBranchManager = null;
try
{
objyBranchManager = (ObjyBranchManager)objyScope.lookupObject(ObjyDb.BRANCHMANAGER_NAME);
}
catch (ObjyRuntimeException ex)
{
objyBranchManager = createBranchManager(objyScope);
}
catch (Exception ex)
{
ex.printStackTrace();
}
return objyBranchManager;
}
protected static ObjyLockAreaManager createLockAreaManager(ObjyScope objyScope)
{
ObjyLockAreaManager objyLockAreaManager = ObjyLockAreaManager.create(objyScope.getScopeContOid());
objyScope.nameObj(ObjyDb.LOCKAREAMANAGER_NAME, objyLockAreaManager.getOid());
return objyLockAreaManager;
}
public static ObjyLockAreaManager getOrCreateLockAreaManager(String repositoryName)
{
ObjyScope objyScope = new ObjyScope(repositoryName, ObjyDb.LOCKAREA_CONT_NAME);
ObjyLockAreaManager objyLockAreaManager = null;
try
{
objyLockAreaManager = (ObjyLockAreaManager)objyScope.lookupObject(ObjyDb.LOCKAREAMANAGER_NAME);
}
catch (ObjyRuntimeException ex)
{
objyLockAreaManager = createLockAreaManager(objyScope);
}
catch (Exception ex)
{
ex.printStackTrace();
}
return objyLockAreaManager;
}
protected static ooId createPackageMap(ObjyScope objyScope)
{
// TODO - this need refactoring...
ooId packageMapId = ObjyPackageHandler.create(objyScope.getScopeContOid());
objyScope.nameObj(ObjyDb.PACKAGEMAP_NAME, packageMapId);
return packageMapId;
}
public static ooId getOrCreatePackageMap(String repositoryName)
{
ObjyScope objyScope = new ObjyScope(repositoryName, ObjyDb.PACKAGESTORE_CONT_NAME);
ooId packageMapId = null;
try
{
packageMapId = objyScope.lookupObjectOid(ObjyDb.PACKAGEMAP_NAME);
}
catch (ObjyRuntimeException ex)
{
packageMapId = createPackageMap(objyScope);
}
catch (Exception ex)
{
ex.printStackTrace();
}
return packageMapId;
}
}