blob: d9e2d8933bf817c764987b9c0e1a201a62de4dbe [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
* Zend Technologies
*******************************************************************************/
package org.eclipse.dltk.core.index2;
import org.eclipse.dltk.core.IModelElement;
/**
* Model element handler for indexing process
*
* @author michael
* @since 2.0
*
*/
public interface IIndexingRequestor {
/**
* Element reference information
*/
public class ReferenceInfo {
/**
* Element type ({@link IModelElement#FIELD}, {@link IModelElement#Type}
* , etc...)
*/
public int elementType;
/** Element start offset in document */
public int offset;
/** Element length in document */
public int length;
/** Element name */
public String elementName;
/** Various element metadata */
public String metadata;
/** Element qualifier */
public String qualifier;
public ReferenceInfo(int elementType, int offset, int length,
String elementName, String metadata, String qualifier) {
super();
this.elementType = elementType;
this.offset = offset;
this.length = length;
this.elementName = elementName;
this.metadata = metadata;
this.qualifier = qualifier;
}
}
/**
* Element declaration information
*/
public class DeclarationInfo extends ReferenceInfo {
/** Element modifiers */
public int flags;
/** Element name offset in document */
public int nameOffset;
/** Element name length in document */
public int nameLength;
/** Element parent information */
public String parent;
/**
* DOC information
*
* @since 3.0
*/
public String doc;
/**
* @since 3.0
*/
public DeclarationInfo(int elementType, int flags, int offset,
int length, int nameOffset, int nameLength, String elementName,
String metadata, String doc, String qualifier, String parent) {
super(elementType, offset, length, elementName, metadata, qualifier);
this.flags = flags;
this.nameOffset = nameOffset;
this.nameLength = nameLength;
this.parent = parent;
this.doc = doc;
}
}
/**
* Adds new element declaration to the index.
*
* @param info
* Information about element declaration
*/
public void addDeclaration(DeclarationInfo info);
/**
* Adds new element reference to the index.
*
* @param info
* Information about element reference
*/
public void addReference(ReferenceInfo info);
}