001: /*******************************************************************************
002: * Copyright (c) 2000, 2006 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.jdt.internal.core;
011:
012: import org.eclipse.jdt.core.IJavaElementDelta;
013:
014: /**
015: * A simple Java element delta that remembers the kind of changes only.
016: */
017: public class SimpleDelta {
018:
019: /*
020: * @see IJavaElementDelta#getKind()
021: */
022: protected int kind = 0;
023:
024: /*
025: * @see IJavaElementDelta#getFlags()
026: */
027: protected int changeFlags = 0;
028:
029: /*
030: * Marks this delta as added
031: */
032: public void added() {
033: this .kind = IJavaElementDelta.ADDED;
034: }
035:
036: /*
037: * Marks this delta as changed with the given change flag
038: */
039: public void changed(int flags) {
040: this .kind = IJavaElementDelta.CHANGED;
041: this .changeFlags |= flags;
042: }
043:
044: /*
045: * @see IJavaElementDelta#getFlags()
046: */
047: public int getFlags() {
048: return this .changeFlags;
049: }
050:
051: /*
052: * @see IJavaElementDelta#getKind()
053: */
054: public int getKind() {
055: return this .kind;
056: }
057:
058: /*
059: * Mark this delta has a having a modifiers change
060: */
061: public void modifiers() {
062: changed(IJavaElementDelta.F_MODIFIERS);
063: }
064:
065: /*
066: * Marks this delta as removed
067: */
068: public void removed() {
069: this .kind = IJavaElementDelta.REMOVED;
070: this .changeFlags = 0;
071: }
072:
073: /*
074: * Mark this delta has a having a super type change
075: */
076: public void super Types() {
077: changed(IJavaElementDelta.F_SUPER_TYPES);
078: }
079:
080: protected void toDebugString(StringBuffer buffer) {
081: buffer.append("["); //$NON-NLS-1$
082: switch (getKind()) {
083: case IJavaElementDelta.ADDED:
084: buffer.append('+');
085: break;
086: case IJavaElementDelta.REMOVED:
087: buffer.append('-');
088: break;
089: case IJavaElementDelta.CHANGED:
090: buffer.append('*');
091: break;
092: default:
093: buffer.append('?');
094: break;
095: }
096: buffer.append("]: {"); //$NON-NLS-1$
097: toDebugString(buffer, getFlags());
098: buffer.append("}"); //$NON-NLS-1$
099: }
100:
101: protected boolean toDebugString(StringBuffer buffer, int flags) {
102: boolean prev = false;
103: if ((flags & IJavaElementDelta.F_MODIFIERS) != 0) {
104: if (prev)
105: buffer.append(" | "); //$NON-NLS-1$
106: buffer.append("MODIFIERS CHANGED"); //$NON-NLS-1$
107: prev = true;
108: }
109: if ((flags & IJavaElementDelta.F_SUPER_TYPES) != 0) {
110: if (prev)
111: buffer.append(" | "); //$NON-NLS-1$
112: buffer.append("SUPER TYPES CHANGED"); //$NON-NLS-1$
113: prev = true;
114: }
115: return prev;
116: }
117:
118: public String toString() {
119: StringBuffer buffer = new StringBuffer();
120: toDebugString(buffer);
121: return buffer.toString();
122: }
123: }
|