Copyright (c) 2000, 2008 IBM Corporation and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
IBM Corporation - initial API and implementation
/*******************************************************************************
* Copyright (c) 2000, 2008 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.internal.core;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.*;
import org.eclipse.jdt.core.Flags;
import org.eclipse.jdt.core.IInitializer;
import org.eclipse.jdt.core.IJavaModelStatusConstants;
import org.eclipse.jdt.core.ISourceRange;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.internal.core.util.Util;
See Also: - IInitializer
/**
* @see IInitializer
*/
public class Initializer extends Member implements IInitializer {
protected Initializer(JavaElement parent, int count) {
super(parent);
// 0 is not valid: this first occurrence is occurrence 1.
if (count <= 0)
throw new IllegalArgumentException();
this.occurrenceCount = count;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof Initializer)) return false;
return super.equals(o);
}
See Also: - IJavaElement
/**
* @see IJavaElement
*/
@Override
public int getElementType() {
return INITIALIZER;
}
See Also: - getHandleMemento.getHandleMemento(StringBuffer)
/**
* @see JavaElement#getHandleMemento(StringBuffer)
*/
@Override
protected void getHandleMemento(StringBuffer buff) {
((JavaElement)getParent()).getHandleMemento(buff);
buff.append(getHandleMementoDelimiter());
buff.append(this.occurrenceCount);
}
See Also: - getHandleMemento.getHandleMemento()
/**
* @see JavaElement#getHandleMemento()
*/
@Override
protected char getHandleMementoDelimiter() {
return JavaElement.JEM_INITIALIZER;
}
@Override
public int hashCode() {
return Util.combineHashCodes(this.parent.hashCode(), this.occurrenceCount);
}
/**
*/
@Override
public String readableName() {
return ((JavaElement)getDeclaringType()).readableName();
}
See Also: - ISourceManipulation
/**
* @see ISourceManipulation
*/
@Override
public void rename(String newName, boolean force, IProgressMonitor monitor) throws JavaModelException {
throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.INVALID_ELEMENT_TYPES, this));
}
See Also: - IMember
/**
* @see IMember
*/
@Override
public ISourceRange getNameRange() {
return null;
}
@Override
public IJavaElement getPrimaryElement(boolean checkOwner) {
if (checkOwner) {
CompilationUnit cu = (CompilationUnit)getAncestor(COMPILATION_UNIT);
if (cu == null || cu.isPrimary()) return this;
}
IJavaElement primaryParent = this.parent.getPrimaryElement(false);
return ((IType)primaryParent).getInitializer(this.occurrenceCount);
}
@private Debugging purposes
/**
* @private Debugging purposes
*/
@Override
protected void toStringInfo(int tab, StringBuffer buffer, Object info, boolean showResolvedInfo) {
buffer.append(tabString(tab));
if (info == null) {
buffer.append("<initializer #"); //$NON-NLS-1$
buffer.append(this.occurrenceCount);
buffer.append("> (not open)"); //$NON-NLS-1$
} else if (info == NO_INFO) {
buffer.append("<initializer #"); //$NON-NLS-1$
buffer.append(this.occurrenceCount);
buffer.append(">"); //$NON-NLS-1$
} else {
try {
buffer.append("<"); //$NON-NLS-1$
if (Flags.isStatic(getFlags())) {
buffer.append("static "); //$NON-NLS-1$
}
buffer.append("initializer #"); //$NON-NLS-1$
buffer.append(this.occurrenceCount);
buffer.append(">"); //$NON-NLS-1$
} catch (JavaModelException e) {
buffer.append("<JavaModelException in toString of " + getElementName()); //$NON-NLS-1$
}
}
}
}