Package org.objectstyle.wolips.jdt

Source Code of org.objectstyle.wolips.jdt.WOBuildPropertiesInitializer

package org.objectstyle.wolips.jdt;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.Platform;
import org.objectstyle.woenvironment.frameworks.Version;
import org.objectstyle.wolips.core.resources.types.project.ProjectAdapter;
import org.objectstyle.wolips.jdt.classpath.model.IEclipseFramework;
import org.objectstyle.wolips.variables.BuildProperties;
import org.objectstyle.wolips.variables.IBuildPropertiesInitializer;
import org.objectstyle.wolips.variables.VariablesPlugin;

public class WOBuildPropertiesInitializer implements IBuildPropertiesInitializer {
  public void initializeDefaults(BuildProperties buildProperties) {
    IProject project = buildProperties.getProject();
    if (!project.isAccessible()) {
      return;
    }

    try {
      ProjectFrameworkAdapter projectFrameworkAdaptor = (ProjectFrameworkAdapter) project.getAdapter(ProjectFrameworkAdapter.class);
      if (projectFrameworkAdaptor != null) {
        IEclipseFramework foundationFramework;
        // ... If you have the JavaFoundation source framework and you're actually talking to it right now, well .. we have
        // to special case that one. If a JavaFoundation framework falls in the forest, does it make a sound?
        if ("JavaFoundation".equals(project.getName())) {
          foundationFramework = JdtPlugin.getDefault().getFrameworkModel(project).getFrameworkWithName("JavaFoundation");
        }
        else {
          foundationFramework = projectFrameworkAdaptor.getLinkedFrameworkNamed("JavaFoundation");
        }
        if (foundationFramework != null) {
          Version version = foundationFramework.getVersion();
          if (version != null && !version.isUndefined()) {
            buildProperties.setWOVersionDefault(version);
          }
        }
       
        boolean wellFormedTemplateRequiredDefault;
        if (projectFrameworkAdaptor.isLinkedToFrameworkNamed("WOOgnl")) {
          buildProperties.setInlineBindingPrefixDefault("$");
          buildProperties.setInlineBindingSuffixDefault("");
          wellFormedTemplateRequiredDefault = false;
        } else if (buildProperties.getWOVersion().isAtLeastVersion(5, 4)) {
          buildProperties.setInlineBindingPrefixDefault("[");
          buildProperties.setInlineBindingSuffixDefault("]");
          wellFormedTemplateRequiredDefault = true;
        } else {
          buildProperties.setInlineBindingPrefixDefault("[");
          buildProperties.setInlineBindingSuffixDefault("]");
          wellFormedTemplateRequiredDefault = false;
        }
        String globalWellFormedTemplateRequiredDefault = Platform.getPreferencesService().getString("org.objectstyle.wolips.bindings", "WellFormedTemplate", null, null);
        if ("yes".equals(globalWellFormedTemplateRequiredDefault)) {
          wellFormedTemplateRequiredDefault = true;
        }
        else if ("no".equals(globalWellFormedTemplateRequiredDefault)) {
          wellFormedTemplateRequiredDefault = false;
        }
        buildProperties.setWellFormedTemplateRequiredDefault(VariablesPlugin.getDefault().getGlobalVariables().getBoolean("component.wellFormedTemplateRequired", wellFormedTemplateRequiredDefault));
       
        IEclipseFramework framework = projectFrameworkAdaptor.getFramework();
        if (framework != null) {
          buildProperties.setVersionDefault(framework.getVersion());
        }
      }
    } catch (Throwable e) {
      e.printStackTrace(System.out);
    }
  }
 

  public void initialize(BuildProperties buildProperties) {
    IProject project = buildProperties.getProject();
    if (!project.isAccessible()) {
      return;
    }

    String buildPropertiesVersionStr = VariablesPlugin.getDefault().getProjectVariables(project).getString("wolips.buildPropertiesVersion");
    int buildPropertiesVersion = buildPropertiesVersionStr == null ? Integer.MAX_VALUE : Integer.parseInt(buildPropertiesVersionStr);
    // MS: if wolips.buildPropertiesVersion is 0, then don't rename framework.name to project.name
    if (!buildProperties.hasValidProjectType() && buildPropertiesVersion > 0) {
      ProjectAdapter projectAdapter = (ProjectAdapter) project.getAdapter(ProjectAdapter.class);
      boolean framework = false;
      if (projectAdapter != null) {
        framework = projectAdapter.isFramework();
      }
      buildProperties.setFramework(framework);
      String projectName = buildProperties.getName();
      if (framework) {
        if (projectName == null) {
          String frameworkName = buildProperties.get("framework.name");
          if (frameworkName == null) {
            buildProperties.setName(project.getName());
          } else {
            buildProperties.setName(frameworkName);
          }
        } else {
          // reset it so we update the dependent properties
          buildProperties.setName(projectName);
        }
        buildProperties.remove("framework.name");
      } else {
        if (projectName == null) {
          buildProperties.setName(project.getName());
        } else {
          // reset it so we update the dependent properties
          buildProperties.setName(projectName);
        }
      }
    }
  }

}
TOP

Related Classes of org.objectstyle.wolips.jdt.WOBuildPropertiesInitializer

TOP
Copyright © 2018 www.massapi.com. 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.