tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/model/DuplicateValueModifier.java
--- a/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/model/DuplicateValueModifier.java Tue Aug 31 16:45:49 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-* Base class for value modifiers
-*
-*/
-package com.nokia.tracecompiler.model;
-
-/**
- * Base class for value modifiers
- *
- */
-abstract class DuplicateValueModifier implements TraceObjectModifier {
-
- /**
- * Duplicate tag for values
- */
- private static final String DUPLICATE_TAG = "DUP"; //$NON-NLS-1$
-
- /**
- * Duplicate tag separator
- */
- private static final char DUPLICATE_SEPARATOR = '_';
-
- /**
- * Value
- */
- private String value;
-
- /**
- * Changed flag
- */
- private boolean changed;
-
- /**
- * Constructor
- *
- * @param value
- * the value
- */
- DuplicateValueModifier(String value) {
- this.value = value;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.nokia.tracecompiler.model.TraceObjectUtils.TraceObjectModifier#getData()
- */
- public String getData() {
- return value;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.nokia.tracecompiler.model.TraceObjectUtils.TraceObjectModifier#hasChanged()
- */
- public boolean hasChanged() {
- return changed;
- }
-
- /**
- * Gets the separator character
- *
- * @return the char
- */
- protected char getSeparator() {
- return DUPLICATE_SEPARATOR;
- }
-
- /**
- * Processes the name and modifies if there are duplicates
- */
- void processName() {
- int index = getStartIndex(value);
- TraceObject object;
- do {
- object = findObject(value);
- if (object != null) {
- changed = true;
- value = appendIndexToString(value, index);
- index++;
- }
- } while (object != null);
- }
-
- /**
- * Gets the start index from given text
- *
- * @param value
- * the value to be parsed
- * @return the start index
- */
- private int getStartIndex(String value) {
- String valueStr = null;
- if (value.startsWith(DUPLICATE_TAG)) {
- for (int i = DUPLICATE_TAG.length(); i < value.length(); i++) {
- char c = value.charAt(i);
- if (!Character.isDigit(c)) {
- valueStr = value.substring(DUPLICATE_TAG.length(), i);
- i = value.length();
- }
- }
- }
- int retval = -1;
- if (valueStr != null && valueStr.length() > 0) {
- retval = Integer.parseInt(valueStr);
- }
- return retval;
- }
-
- /**
- * Appends an index value to given string replacing existing index if it
- * exists
- *
- * @param value
- * the string
- * @param index
- * the index
- * @return the changed string
- */
- private String appendIndexToString(String value, int index) {
- StringBuffer newValue = new StringBuffer();
- if (index >= 0) {
- String indexStr = String.valueOf(index);
- newValue.append(DUPLICATE_TAG);
- newValue.append(String.valueOf(index + 1));
- newValue.append(getSeparator());
- newValue.append(value.substring(DUPLICATE_TAG.length()
- + indexStr.length() + 1)); // Add separator
- } else {
- newValue.append(DUPLICATE_TAG);
- newValue.append("1"); //$NON-NLS-1$
- newValue.append(getSeparator());
- newValue.append(value);
- }
- return newValue.toString();
- }
-
- /**
- * Gets the duplicate modifier from beginning of given text
- *
- * @param text
- * the text
- * @return the modifier
- */
- static String getModifier(String text) {
- String retval = null;
- if (text.startsWith(DUPLICATE_TAG)) {
- for (int i = DUPLICATE_TAG.length(); i < text.length(); i++) {
- char c = text.charAt(i);
- if (!Character.isDigit(c)) {
- retval = text.substring(0, i + 1); // Add separator
- i = text.length();
- }
- }
- }
- return retval;
- }
-
- /**
- * Finds the object from model
- *
- * @param value
- * the value
- * @return the object or null if not found
- */
- abstract TraceObject findObject(String value);
-
-}
\ No newline at end of file