/*******************************************************************************
* Copyright (c) 2011 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.jsf.jsf2.bean.model.impl;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.IType;
import org.jboss.tools.common.util.FileUtil;
/**
*
* @author Viacheslav Kabanovich
*
*/
public class AbstractTypeDefinition extends AbstractMemberDefinition {
protected String qualifiedName;
protected IType type;
protected String content = null;
public AbstractTypeDefinition() {}
@Override
public AbstractTypeDefinition getTypeDefinition() {
return this;
}
public String getQualifiedName() {
return qualifiedName;
}
public IType getType() {
return type;
}
public void setType(IType type, DefinitionContext context, int flags) {
super.setAnnotatable(type, type, context, flags);
}
@Override
protected void init(IType contextType, DefinitionContext context, int flags) throws CoreException {
this.type = contextType;
super.init(contextType, context, flags);
qualifiedName = getType().getFullyQualifiedName();
}
public String getContent() {
if(type == null || type.isBinary()) return null;
if(content == null && resource instanceof IFile && resource.getName().endsWith(".java")) {
content = FileUtil.getContentFromEditorOrFile((IFile)resource);
}
return content;
}
}