Package com.webobjects.eoaccess

Examples of com.webobjects.eoaccess.EOModel


     *
     * @return array of dictionaries
     */
    public static NSArray<NSDictionary> rawRowsForSQLExpression(EOEditingContext ec, String modelName, EOSQLExpression expression) {
      EOModelGroup modelGroup = EOUtilities.modelGroup(ec);
        EOModel model = modelGroup.modelNamed(modelName);
      return ERXEOAccessUtilities.rawRowsForSQLExpression(ec, model, expression, null);
    }
View Full Code Here


     * @return the EOSQLExpression which the EOFetchSpecification would use
     */
    public static EOSQLExpression sqlExpressionForFetchSpecification(EOEditingContext ec, EOFetchSpecification spec, long start, long end) {
      EOSQLExpression expression = null;
        EOEntity entity = ERXEOAccessUtilities.entityNamed(ec, spec.entityName());
        EOModel model = entity.model();
        EODatabaseContext dbc = EODatabaseContext.registeredDatabaseContextForModel(model, ec);
        dbc.lock();
        try {
          ERXSQLHelper sqlHelper = ERXSQLHelper.newSQLHelper(ec, model.name());
          expression = sqlHelper.sqlExpressionForFetchSpecification(ec, spec, start, end);
        }
        catch (Exception e) {
          throw NSForwardException._runtimeExceptionForThrowable(e);
      }
View Full Code Here

    public static int rowCountForFetchSpecification(EOEditingContext ec, EOFetchSpecification spec) {
      EOEntity entity = ERXEOAccessUtilities.entityNamed(ec, spec.entityName());
        if (entity == null)
            throw new java.lang.IllegalStateException("entity could not be found for name \""+spec.entityName()+"\". Checked EOModelGroup for loaded models.");

      EOModel model = entity.model();

      EODatabaseContext dbc = EODatabaseContext.registeredDatabaseContextForModel(model, ec);
      int results = 0;

      dbc.lock();
      try {
        results = ERXSQLHelper.newSQLHelper(ec, model.name()).rowCountForFetchSpecification(ec, spec);
      }
      catch (Exception localException) {
        if (dbc._isDroppedConnectionException(localException)) {
          try {
            dbc.database().handleDroppedConnection();
            results = ERXSQLHelper.newSQLHelper(ec, model.name()).rowCountForFetchSpecification(ec, spec);
          }
          catch (Exception ex) {
            throw NSForwardException._runtimeExceptionForThrowable(ex);
          }
        }
View Full Code Here

     * @param entityName entity name
     * @param osc the object store coordinator
     * @return database context
     */
    public static EODatabaseContext databaseContextForEntityNamed(EOObjectStoreCoordinator osc, String entityName) {
        EOModel model = EOModelGroup.modelGroupForObjectStoreCoordinator(osc).entityNamed(entityName).model();
        EODatabaseContext dbc = EODatabaseContext.registeredDatabaseContextForModel(model, osc);
        return dbc;
    }
View Full Code Here

     NSMutableSet verifiedDatabases = new NSMutableSet();
     EOEditingContext editingContext = ERXEC.newEditingContext();
     EOModelGroup modelGroup = EOModelGroup.defaultGroup();
     Enumeration modelsEnum = modelGroup.models().objectEnumerator();
     while (modelsEnum.hasMoreElements()) {
       EOModel model = (EOModel) modelsEnum.nextElement();
       EODatabaseContext databaseContext = null;
       try {
         databaseContext = EODatabaseContext.registeredDatabaseContextForModel(model, editingContext);
       }
       catch (IllegalStateException e) {
         log.warn("Model " + model.name() + " failed: " + e.getMessage());
       }
       if (databaseContext != null) {
         databaseContext.lock();
         try {
           EODatabase database = databaseContext.database();
View Full Code Here

    public void modelGroupDidLoad(NSNotification n) {
        configuration.removeAllObjects();
        EOModelGroup group = (EOModelGroup) n.object();
        for (Enumeration e = group.models().objectEnumerator(); e.hasMoreElements();) {
            EOModel model = (EOModel) e.nextElement();
            for (Enumeration e1 = model.entities().objectEnumerator(); e1.hasMoreElements();) {
                EOEntity entity = (EOEntity) e1.nextElement();
                if (entity.userInfo() != null && entity.userInfo().objectForKey(ERXAUDIT_KEYS) != null) {
                    configureEntity(entity);
                }
            }
View Full Code Here

    @Override
    public void finishInitialization() {
        EOEditingContext ec = ERXEC.newEditingContext();
        ec.lock();
        try {
            EOModel model = EOModelGroup.defaultGroup().modelNamed("BugTracker");
            EOEntity release = model.entityNamed("Release");
            if(model.connectionDictionary().toString().toLowerCase().indexOf(":mysql") >= 0) {
                release.setExternalName("`RELEASE`");
            } else if(model.connectionDictionary().toString().toLowerCase().indexOf(":derby") >= 0) {
                // AK: if we set the connection string to ;create=true, then subsequent model create scripts will
                // delete former entries, so we set this once here.
                String url = ""+ model.connectionDictionary().objectForKey("URL");
                if(!url.contains(";create=true")) {
                    java.sql.Connection conn = null;
                    try {
                        Class foundDriver = Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
                        conn = java.sql.DriverManager.getConnection(url +";create=true");
View Full Code Here

    Map<IERXPostMigration, ERXModelVersion> postMigrations = new LinkedHashMap<IERXPostMigration, ERXModelVersion>();
    Iterator<IERXMigration> migrationsIter = migrations.keySet().iterator();
    while (migrationsIter.hasNext()) {
      IERXMigration migration = migrationsIter.next();
      ERXModelVersion modelVersion = migrations.get(migration);
      EOModel model = modelVersion.model();
      IERXMigrationLock migrationLock = databaseLockForModel(model);
      EOEditingContext editingContext = newEditingContext();
      editingContext.lock();
      try {
        ERXMigrationAction migrationAction = new ERXMigrationAction(editingContext, migration, modelVersion, migrationLock, _lockOwnerName, postMigrations);
        try {
          ERXSQLHelper helper = ERXSQLHelper.newSQLHelper(model);
          try {
            helper.prepareConnectionForSchemaChange(editingContext, model);
            migrationAction.perform(editingContext, model.name());
          }
          finally {
            helper.restoreConnectionSettingsAfterSchemaChange(editingContext, model);
          }
        }
        catch (ERXMigrationFailedException e) {
          throw e;
        }
        catch (EOGeneralAdaptorException t) {
            new ERXJDBCConnectionAnalyzer(model.connectionDictionary());
          throw new ERXMigrationFailedException("Failed to migrate model '" + model.name() + "'.", t);
        }
        catch (Throwable t) {
          throw new ERXMigrationFailedException("Failed to migrate model '" + model.name() + "'.", t);
        }       
      }
      finally {
        editingContext.unlock();
      }
View Full Code Here

      EOModelGroup modelGroup = EOModelGroup.defaultGroup();
      Enumeration modelNamesEnum = modelNames.objectEnumerator();
      while (modelNamesEnum.hasMoreElements()) {
        String modelName = (String) modelNamesEnum.nextElement();
        if (!skipModelNames.containsObject(modelName)) {
          EOModel model = modelGroup.modelNamed(modelName);
          if (model == null) {
            throw new IllegalArgumentException("There is no model named '" + modelName + "' in this model group.");
          }
          _buildDependenciesForModel(model, ERXMigrator.LATEST_VERSION, versions, migrations);
        }
      }

      Set<String> processedModelNames = new HashSet<String>();
      Set<String> pendingModelNames = new HashSet<String>(versions.keySet());
      while (!pendingModelNames.isEmpty()) {
        Iterator<String> modelNamesIter = pendingModelNames.iterator();
        while (modelNamesIter.hasNext()) {
          String modelName = modelNamesIter.next();
          EOModel model = modelGroup.modelNamed(modelName);
          Enumeration entitiesEnum = model.entities().objectEnumerator();
          while (entitiesEnum.hasMoreElements()) {
            EOEntity entity = (EOEntity) entitiesEnum.nextElement();
            EOEntity parentEntity = entity.parentEntity();
            if (parentEntity != null && !parentEntity.model().equals(model)) {
              EOModel parentModel = parentEntity.model();
              _buildDependenciesForModel(parentModel, LATEST_VERSION, versions, migrations);
            }
            Enumeration relationshipsEnum = entity.relationships().objectEnumerator();
            while (relationshipsEnum.hasMoreElements()) {
              EORelationship relationship = (EORelationship) relationshipsEnum.nextElement();
              EOEntity destinationEntity = relationship.destinationEntity();
              if (destinationEntity != null && !destinationEntity.model().equals(model)) {
                EOModel destinationModel = destinationEntity.model();
                _buildDependenciesForModel(destinationModel, LATEST_VERSION, versions, migrations);
              }
            }
          }
          _buildDependenciesForModel(model, LATEST_VERSION, versions, migrations);
View Full Code Here

          NSArray<ERXModelVersion> migrationDependencies = migration.modelDependencies();
          if (migrationDependencies != null) {
            Enumeration<ERXModelVersion> migrationDependenciesEnum = migrationDependencies.objectEnumerator();
            while (migrationDependenciesEnum.hasMoreElements()) {
              ERXModelVersion modelVersion = migrationDependenciesEnum.nextElement();
              EOModel dependsOnModel = modelVersion.model();
              int dependsOnVersion = modelVersion.version();
              _buildDependenciesForModel(dependsOnModel, dependsOnVersion, versions, migrations);
            }
          }
View Full Code Here

TOP

Related Classes of com.webobjects.eoaccess.EOModel

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.