Search in sources :

Example 1 with RevisionSummary

use of org.bimserver.models.store.RevisionSummary in project BIMserver by opensourceBIM.

the class SummaryMap method toRevisionSummary.

public RevisionSummary toRevisionSummary(DatabaseSession databaseSession) throws BimserverDatabaseException {
    RevisionSummary revisionSummary = databaseSession.create(RevisionSummary.class);
    RevisionSummaryContainer revisionSummaryContainerEntities = databaseSession.create(RevisionSummaryContainer.class);
    revisionSummaryContainerEntities.setName("IFC Entities");
    revisionSummary.getList().add(revisionSummaryContainerEntities);
    RevisionSummaryContainer revisionSummaryContainerRelations = databaseSession.create(RevisionSummaryContainer.class);
    revisionSummaryContainerRelations.setName("IFC Relations");
    revisionSummary.getList().add(revisionSummaryContainerRelations);
    RevisionSummaryContainer revisionSummaryContainerPrimitives = databaseSession.create(RevisionSummaryContainer.class);
    revisionSummaryContainerPrimitives.setName("IFC Primitives");
    revisionSummary.getList().add(revisionSummaryContainerPrimitives);
    RevisionSummaryContainer revisionSummaryContainerOther = databaseSession.create(RevisionSummaryContainer.class);
    revisionSummaryContainerOther.setName("Rest");
    revisionSummary.getList().add(revisionSummaryContainerOther);
    for (EClass eClass : summaryMap.keySet()) {
        RevisionSummaryContainer subMap = null;
        if (((EClass) packageMetaData.getEPackage().getEClassifier("IfcObject")).isSuperTypeOf(eClass)) {
            subMap = revisionSummaryContainerEntities;
        } else if (((EClass) packageMetaData.getEPackage().getEClassifier("IfcRelationship")).isSuperTypeOf(eClass)) {
            subMap = revisionSummaryContainerRelations;
        } else if (eClass.getEAnnotation("wrapped") != null) {
            subMap = revisionSummaryContainerPrimitives;
        } else {
            subMap = revisionSummaryContainerOther;
        }
        RevisionSummaryType createRevisionSummaryType = databaseSession.create(RevisionSummaryType.class);
        createRevisionSummaryType.setSchema(eClass.getEPackage().getName());
        createRevisionSummaryType.setCount(summaryMap.get(eClass));
        createRevisionSummaryType.setName(eClass.getName());
        subMap.getTypes().add(createRevisionSummaryType);
    }
    return revisionSummary;
}
Also used : EClass(org.eclipse.emf.ecore.EClass) RevisionSummaryContainer(org.bimserver.models.store.RevisionSummaryContainer) RevisionSummary(org.bimserver.models.store.RevisionSummary) RevisionSummaryType(org.bimserver.models.store.RevisionSummaryType)

Example 2 with RevisionSummary

use of org.bimserver.models.store.RevisionSummary in project BIMserver by opensourceBIM.

the class CountDatabaseAction method execute.

@Override
public Integer execute() throws UserException, BimserverLockConflictException, BimserverDatabaseException {
    Revision revision = getRevisionByRoid(roid);
    if (revision == null) {
        throw new UserException("Revision with roid " + roid + " not found");
    }
    PackageMetaData packageMetaData = bimServer.getMetaDataManager().getPackageMetaData(revision.getProject().getSchema());
    Project project = revision.getProject();
    if (revision.getConcreteRevisions().size() == 1 && revision.getConcreteRevisions().get(0).getSummary() != null) {
        RevisionSummary summary = revision.getConcreteRevisions().get(0).getSummary();
        SummaryMap summaryMap = new SummaryMap(packageMetaData, summary);
        if (className.equals("[ALL]")) {
            return summaryMap.count();
        } else {
            return summaryMap.count(getDatabaseSession().getEClass(project.getSchema(), className));
        }
    }
    return null;
}
Also used : Project(org.bimserver.models.store.Project) Revision(org.bimserver.models.store.Revision) SummaryMap(org.bimserver.SummaryMap) PackageMetaData(org.bimserver.emf.PackageMetaData) RevisionSummary(org.bimserver.models.store.RevisionSummary) UserException(org.bimserver.shared.exceptions.UserException)

Example 3 with RevisionSummary

use of org.bimserver.models.store.RevisionSummary in project BIMserver by opensourceBIM.

the class GetRevisionSummaryDatabaseAction method createSummary.

private RevisionSummary createSummary() {
    RevisionSummary revisionSummary = StoreFactory.eINSTANCE.createRevisionSummary();
    revisionSummaryContainerEntities = StoreFactory.eINSTANCE.createRevisionSummaryContainer();
    revisionSummaryContainerEntities.setName("IFC Entities");
    revisionSummary.getList().add(revisionSummaryContainerEntities);
    revisionSummaryContainerRelations = StoreFactory.eINSTANCE.createRevisionSummaryContainer();
    revisionSummaryContainerRelations.setName("IFC Relations");
    revisionSummary.getList().add(revisionSummaryContainerRelations);
    revisionSummaryContainerPrimitives = StoreFactory.eINSTANCE.createRevisionSummaryContainer();
    revisionSummaryContainerPrimitives.setName("IFC Primitives");
    revisionSummary.getList().add(revisionSummaryContainerPrimitives);
    revisionSummaryContainerOther = StoreFactory.eINSTANCE.createRevisionSummaryContainer();
    revisionSummaryContainerOther.setName("Rest");
    revisionSummary.getList().add(revisionSummaryContainerOther);
    for (EClass eClass : map.keySet()) {
        RevisionSummaryContainer subMap = null;
        if (Ifc2x3tc1Package.eINSTANCE.getIfcObject().isSuperTypeOf(eClass)) {
            subMap = revisionSummaryContainerEntities;
        } else if (Ifc2x3tc1Package.eINSTANCE.getIfcRelationship().isSuperTypeOf(eClass)) {
            subMap = revisionSummaryContainerRelations;
        } else if (eClass.getEAnnotation("wrapped") != null) {
            subMap = revisionSummaryContainerPrimitives;
        } else {
            subMap = revisionSummaryContainerOther;
        }
        RevisionSummaryType createRevisionSummaryType = StoreFactory.eINSTANCE.createRevisionSummaryType();
        createRevisionSummaryType.setSchema(eClass.getEPackage().getName());
        createRevisionSummaryType.setCount(map.get(eClass));
        createRevisionSummaryType.setName(eClass.getName());
        subMap.getTypes().add(createRevisionSummaryType);
    }
    return revisionSummary;
}
Also used : EClass(org.eclipse.emf.ecore.EClass) RevisionSummaryContainer(org.bimserver.models.store.RevisionSummaryContainer) RevisionSummary(org.bimserver.models.store.RevisionSummary) RevisionSummaryType(org.bimserver.models.store.RevisionSummaryType)

Example 4 with RevisionSummary

use of org.bimserver.models.store.RevisionSummary in project BIMserver by opensourceBIM.

the class ServiceImpl method getRevisionSummary.

@Override
public SRevisionSummary getRevisionSummary(Long roid) throws ServerException, UserException {
    requireAuthentication();
    DatabaseSession session = getBimServer().getDatabase().createSession();
    try {
        BimDatabaseAction<RevisionSummary> action = new GetRevisionSummaryDatabaseAction(session, getInternalAccessMethod(), roid);
        RevisionSummary revisionSummary = session.executeAndCommitAction(action);
        return getBimServer().getSConverter().convertToSObject(revisionSummary);
    } catch (Exception e) {
        return handleException(e);
    } finally {
        session.close();
    }
}
Also used : GetRevisionSummaryDatabaseAction(org.bimserver.database.actions.GetRevisionSummaryDatabaseAction) DatabaseSession(org.bimserver.database.DatabaseSession) SRevisionSummary(org.bimserver.interfaces.objects.SRevisionSummary) RevisionSummary(org.bimserver.models.store.RevisionSummary) IOException(java.io.IOException) BimserverDatabaseException(org.bimserver.BimserverDatabaseException) SerializerException(org.bimserver.plugins.serializers.SerializerException) BcfException(org.opensourcebim.bcf.BcfException) UserException(org.bimserver.shared.exceptions.UserException) CannotBeScheduledException(org.bimserver.longaction.CannotBeScheduledException) DeserializeException(org.bimserver.plugins.deserializers.DeserializeException) ServerException(org.bimserver.shared.exceptions.ServerException) MessagingException(javax.mail.MessagingException) AddressException(javax.mail.internet.AddressException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) MalformedURLException(java.net.MalformedURLException)

Aggregations

RevisionSummary (org.bimserver.models.store.RevisionSummary)4 RevisionSummaryContainer (org.bimserver.models.store.RevisionSummaryContainer)2 RevisionSummaryType (org.bimserver.models.store.RevisionSummaryType)2 UserException (org.bimserver.shared.exceptions.UserException)2 EClass (org.eclipse.emf.ecore.EClass)2 IOException (java.io.IOException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 MalformedURLException (java.net.MalformedURLException)1 MessagingException (javax.mail.MessagingException)1 AddressException (javax.mail.internet.AddressException)1 BimserverDatabaseException (org.bimserver.BimserverDatabaseException)1 SummaryMap (org.bimserver.SummaryMap)1 DatabaseSession (org.bimserver.database.DatabaseSession)1 GetRevisionSummaryDatabaseAction (org.bimserver.database.actions.GetRevisionSummaryDatabaseAction)1 PackageMetaData (org.bimserver.emf.PackageMetaData)1 SRevisionSummary (org.bimserver.interfaces.objects.SRevisionSummary)1 CannotBeScheduledException (org.bimserver.longaction.CannotBeScheduledException)1 Project (org.bimserver.models.store.Project)1 Revision (org.bimserver.models.store.Revision)1 DeserializeException (org.bimserver.plugins.deserializers.DeserializeException)1