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

Source Code of org.springframework.ide.eclipse.data.beans.ui.model.RepositoriesModelContentProvider

/*******************************************************************************
* Copyright (c) 2012 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.data.beans.ui.model;

import java.util.Set;

import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.core.IType;
import org.springframework.ide.eclipse.beans.core.internal.model.BeanClassReferences;
import org.springframework.ide.eclipse.beans.core.model.IBean;
import org.springframework.ide.eclipse.beans.ui.navigator.BeansNavigatorContentProvider;
import org.springframework.ide.eclipse.core.model.IModelElement;
import org.springframework.ide.eclipse.data.SpringDataUtils;

/**
* Content provider to add "referenced by" elements to Spring Data repository interfaces.
*
* @author Oliver Gierke
*/
public class RepositoriesModelContentProvider extends BeansNavigatorContentProvider {

  /*
   * (non-Javadoc)
   * @see org.springframework.ide.eclipse.beans.ui.navigator.BeansNavigatorContentProvider#hasChildren(java.lang.Object)
   */
  @Override
  public boolean hasChildren(Object element) {

    if (super.hasChildren(element)) {
      return true;
    }

    if (!(element instanceof IType)) {
      return false;
    }

    IType type = (IType) element;
    IProject project = type.getJavaProject().getProject();

    return SpringDataUtils.hasRepositoryBeanFor(project, type);
  }

  /*
   * (non-Javadoc)
   * @see org.springframework.ide.eclipse.beans.ui.navigator.BeansNavigatorContentProvider#getJavaTypeChildren(org.eclipse.jdt.core.IType)
   */
  @Override
  protected Object[] getJavaTypeChildren(IType type) {

    IProject project = type.getJavaProject().getProject();
    Set<IBean> beans = SpringDataUtils.getRepositoryBeansFor(project, type);

    if (!beans.isEmpty()) {
      return new Object[] { new BeanClassReferences(type, beans) };
    }

    return IModelElement.NO_CHILDREN;
  }
}
TOP

Related Classes of org.springframework.ide.eclipse.data.beans.ui.model.RepositoriesModelContentProvider

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.