Package org.springframework.ide.eclipse.beans.ui.model

Source Code of org.springframework.ide.eclipse.beans.ui.model.BeansModelLabels

/*******************************************************************************
* Copyright (c) 2006, 2013 Spring IDE Developers
* 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:
*     Spring IDE Developers - initial API and implementation
*******************************************************************************/
package org.springframework.ide.eclipse.beans.ui.model;

import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.Path;
import org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig;
import org.springframework.ide.eclipse.beans.core.model.IBean;
import org.springframework.ide.eclipse.beans.core.model.IBeanConstructorArgument;
import org.springframework.ide.eclipse.beans.core.model.IBeanProperty;
import org.springframework.ide.eclipse.beans.core.model.IBeanReference;
import org.springframework.ide.eclipse.beans.core.model.IBeansConfig;
import org.springframework.ide.eclipse.beans.core.model.IBeansConfigSet;
import org.springframework.ide.eclipse.beans.core.model.IBeansList;
import org.springframework.ide.eclipse.beans.core.model.IBeansMap;
import org.springframework.ide.eclipse.beans.core.model.IBeansMapEntry;
import org.springframework.ide.eclipse.beans.core.model.IBeansProperties;
import org.springframework.ide.eclipse.beans.core.model.IBeansSet;
import org.springframework.ide.eclipse.beans.core.model.IBeansTypedString;
import org.springframework.ide.eclipse.beans.ui.BeansUILabels;
import org.springframework.ide.eclipse.core.io.ZipEntryStorage;
import org.springframework.ide.eclipse.core.model.IModelElement;
import org.springframework.ide.eclipse.core.model.IResourceModelElement;
import org.springframework.ide.eclipse.core.model.ISourceModelElement;
import org.springframework.util.StringUtils;

/**
* This class provides labels for the beans core model's {@link IModelElement elements}.
* @author Torsten Juergeleit
* @author Christian Dupuis
* @author Martin Lippert
*/
public final class BeansModelLabels extends BeansUILabels {

  public static String getElementLabel(IModelElement element, int flags) {
    StringBuffer buf = new StringBuffer(60);
    appendElementLabel(element, flags, buf);
    return buf.toString();
  }

  public static void appendElementLabel(IModelElement element, int flags, StringBuffer buf) {
    if (isFlagged(flags, PREPEND_PATH)) {
      appendElementPathLabel(element, flags, buf);
      buf.append(CONCAT_STRING);
    }
    if (element instanceof IBeansConfig) {
      appendBeansConfigLabel((IBeansConfig) element, flags, buf);
    }
    else if (element instanceof IBeansConfigSet) {
      buf.append(element.getElementName());
      IBeansConfigSet configSet = (IBeansConfigSet) element;
      if (configSet.getProfiles() != null && configSet.getProfiles().size() > 0) {
        buf.append(" profiles=\"").append(StringUtils.collectionToDelimitedString(configSet.getProfiles(), ", ")).append("\"");
      }
    }
    else if (element instanceof ISourceModelElement) {
      appendElementLabel((ISourceModelElement) element, buf);
    }
    else {
      buf.append(element.getElementName());
    }
    if (isFlagged(flags, APPEND_PATH)) {
      buf.append(CONCAT_STRING);
      appendElementPathLabel(element, flags, buf);
    }
  }

  public static void appendElementPathLabel(IModelElement element, int flags, StringBuffer buf) {
    if (element instanceof IResourceModelElement) {
      IResource resource = ((IResourceModelElement) element).getElementResource();
      String path;
      if (element instanceof IBeansConfig && isFlagged(flags, DESCRIPTION)) {
        path = resource.getFullPath().makeRelative().removeLastSegments(1).toString();
      }
      else {
        path = resource.getProjectRelativePath().makeRelative().toString();
      }
      buf.append(path);
      if (element instanceof IBeanConstructorArgument || element instanceof IBeanProperty) {
        buf.append(CONCAT_STRING);
        buf.append(element.getElementParent().getElementName());
      }
    }
  }

  public static void appendBeansConfigLabel(IBeansConfig config, int flags, StringBuffer buf) {
    if (config instanceof BeansJavaConfig) {
      BeansJavaConfig javaConfig = (BeansJavaConfig) config;
      buf.append(javaConfig.getConfigClass().getElementName());
    }
    else {
      String configName = config.getElementName();
      if (config.isElementArchived()) {
        ZipEntryStorage storage = new ZipEntryStorage(config);
        buf.append(storage.getFullPath());
        buf.append(" - ");
        buf.append(storage.getFile().getName());
      }
      else {
        buf.append(new Path(configName).lastSegment());
      }
    }

    if (!isFlagged(flags, DESCRIPTION)) {
      if (StringUtils.hasLength(config.getDefaultLazyInit())
          && !config.getDefaultLazyInit().equals(IBeansConfig.DEFAULT_LAZY_INIT)) {
        buf.append(" lazy-init=\"");
        buf.append(config.getDefaultLazyInit());
        buf.append('"');
      }
      if (StringUtils.hasLength(config.getDefaultAutowire())
          && !config.getDefaultAutowire().equals(IBeansConfig.DEFAULT_AUTO_WIRE)) {
        buf.append(" autowire=\"");
        buf.append(config.getDefaultAutowire());
        buf.append('"');
      }
      if (StringUtils.hasLength(config.getDefaultDependencyCheck())
          && !config.getDefaultDependencyCheck().equals(IBeansConfig.DEFAULT_DEPENDENCY_CHECK)) {
        buf.append(" dependency-check=\"");
        buf.append(config.getDefaultDependencyCheck());
        buf.append('"');
      }
      if (StringUtils.hasLength(config.getDefaultInitMethod())
          && !config.getDefaultInitMethod().equals(IBeansConfig.DEFAULT_INIT_METHOD)) {
        buf.append(" init-method=\"");
        buf.append(config.getDefaultInitMethod());
        buf.append('"');
      }
      if (StringUtils.hasLength(config.getDefaultDestroyMethod())
          && !config.getDefaultDestroyMethod().equals(IBeansConfig.DEFAULT_DESTROY_METHOD)) {
        buf.append(" destroy-method=");
        buf.append(config.getDefaultDestroyMethod());
        buf.append('"');
      }
      if (StringUtils.hasLength(config.getDefaultMerge())
          && !config.getDefaultMerge().equals(IBeansConfig.DEFAULT_MERGE)) {
        buf.append(" merge=\"");
        buf.append(config.getDefaultMerge());
        buf.append('"');
      }
    }
  }
 
  public static void appendBeanLabel(IBean bean, StringBuffer buf) {
    if (!bean.isInnerBean()) {
      buf.append(bean.getElementName()).append(' ');
    }
    if (bean.getAliases() != null && bean.getAliases().length > 0) {
      buf.append('\'');
      buf.append(StringUtils.arrayToDelimitedString(bean.getAliases(), LIST_DELIMITER_STRING));
      buf.append('\'');
    }
    if (bean.getClassName() != null) {
      buf.append('[').append(bean.getClassName()).append(']');
    }
    else if (bean.getParentName() != null) {
      buf.append('<').append(bean.getParentName()).append('>');
    }
  }

  public static void appendElementLabel(IModelElement element, StringBuffer buf) {
    if (element instanceof IBeansList) {
      buf.append("list");
    }
    else if (element instanceof IBeansSet) {
      buf.append("set");
    }
    else if (element instanceof IBeansMap) {
      buf.append("map");
    }
    else if (element instanceof IBeansMapEntry) {
      buf.append("entry");
    }
    else if (element instanceof IBeansProperties) {
      buf.append("props");
    }
    else if (element instanceof IBeanReference) {
      buf.append('<');
      buf.append(((IBeanReference) element).getBeanName());
      buf.append('>');
    }
    else if (element instanceof IBeansTypedString) {
      buf.append(((IBeansTypedString) element).getString());
    }
    else {
      buf.append(element.getElementName());
    }
  }
}
TOP

Related Classes of org.springframework.ide.eclipse.beans.ui.model.BeansModelLabels

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.