| /******************************************************************************* |
| * Copyright (c) 2012 Obeo. |
| * All rights reserved. This program and the accompanying materials |
| * are 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: |
| * Obeo - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.emf.compare.tests.unit; |
| |
| import java.util.Calendar; |
| |
| import org.eclipse.emf.common.notify.Notification; |
| import org.eclipse.emf.common.notify.impl.AdapterImpl; |
| import org.eclipse.emf.ecore.EStructuralFeature; |
| import org.eclipse.emf.ecore.EcorePackage; |
| import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; |
| |
| /** |
| * This class defines utility methods and will be used as the superclass of all test cases for "class-related" |
| * tests. |
| * |
| * @generated |
| */ |
| @SuppressWarnings("nls") |
| public class AbstractCompareTest { |
| /** |
| * Will hold <code>true</code> if the mock adapter has been notified of a changes. |
| * |
| * @generated |
| */ |
| protected boolean notified; |
| |
| /** |
| * This will return a boolean that is distinct from the given <code>feature</code>'s default value. |
| * Namely, <code>true</code> if the default is <code>false</code>, <code>false</code> otherwise. |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return <code>true</code> if the default is <code>false</code>, <code>false</code> otherwise. |
| * @generated |
| */ |
| protected boolean getBooleanDistinctFromDefault(EStructuralFeature feature) { |
| return !((Boolean)feature.getDefaultValue()).booleanValue(); |
| } |
| |
| /** |
| * This will return an int that is distinct from the given <code>feature</code>'s default value. Namely, |
| * <code>-1</code> if the default is <code>0</code>, <code>0</code> otherwise. |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return <code>-1</code> if the default is <code>0</code>, <code>0</code> otherwise. |
| * @generated |
| */ |
| protected int getIntDistinctFromDefault(EStructuralFeature feature) { |
| final int defaultValue = ((Integer)feature.getDefaultValue()).intValue(); |
| return defaultValue == 0 ? -1 : 0; |
| } |
| |
| /** |
| * This will return a byte that is distinct from the given <code>feature</code>'s default value. Namely, |
| * <code>-1</code> if the default is <code>0</code>, <code>0</code> otherwise. |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return <code>-1</code> if the default is <code>0</code>, <code>0</code> otherwise. |
| * @generated |
| */ |
| protected byte getByteDistinctFromDefault(EStructuralFeature feature) { |
| final byte defaultValue = ((Byte)feature.getDefaultValue()).byteValue(); |
| return defaultValue == 0 ? (byte)-1 : 0; |
| } |
| |
| /** |
| * This will return a char that is distinct from the given <code>feature</code>'s default value. Namely, |
| * <code>'b'</code> if the default is <code>'a'</code>, <code>'a'</code> otherwise. |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return <code>'b'</code> if the default is <code>'a'</code>, <code>'a'</code> otherwise. |
| * @generated |
| */ |
| protected char getCharDistinctFromDefault(EStructuralFeature feature) { |
| final char defaultValue = ((Character)feature.getDefaultValue()).charValue(); |
| return defaultValue == 'a' ? 'b' : 'a'; |
| } |
| |
| /** |
| * This will return a double that is distinct from the given <code>feature</code>'s default value. Namely, |
| * <code>-1d</code> if the default is <code>0d</code>, <code>0d</code> otherwise. |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return <code>-1d</code> if the default is <code>0d</code>, <code>0d</code> otherwise. |
| * @generated |
| */ |
| protected double getDoubleDistinctFromDefault(EStructuralFeature feature) { |
| final double defaultValue = ((Double)feature.getDefaultValue()).doubleValue(); |
| return defaultValue == 0d ? -1d : 0d; |
| } |
| |
| /** |
| * This will return a float that is distinct from the given <code>feature</code>'s default value. Namely, |
| * <code>-1f</code> if the default is <code>0f</code>, <code>0f</code> otherwise. |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return <code>-1f</code> if the default is <code>0f</code>, <code>0f</code> otherwise. |
| * @generated |
| */ |
| protected float getFloatDistinctFromDefault(EStructuralFeature feature) { |
| final float defaultValue = ((Float)feature.getDefaultValue()).floatValue(); |
| return defaultValue == 0f ? -1f : 0f; |
| } |
| |
| /** |
| * This will return a long that is distinct from the given <code>feature</code>'s default value. Namely, |
| * <code>-1L</code> if the default is <code>0L</code>, <code>0L</code> otherwise. |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return <code>-1L</code> if the default is <code>0L</code>, <code>0L</code> otherwise. |
| * @generated |
| */ |
| protected long getLongDistinctFromDefault(EStructuralFeature feature) { |
| final long defaultValue = ((Long)feature.getDefaultValue()).longValue(); |
| return defaultValue == 0L ? -1L : 0L; |
| } |
| |
| /** |
| * This will return a short that is distinct from the given <code>feature</code>'s default value. Namely, |
| * <code>-1</code> if the default is <code>0</code>, <code>0</code> otherwise. |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return <code>-1</code> if the default is <code>0</code>, <code>0</code> otherwise. |
| * @generated |
| */ |
| protected short getShortDistinctFromDefault(EStructuralFeature feature) { |
| final short defaultValue = ((Short)feature.getDefaultValue()).shortValue(); |
| return defaultValue == 0 ? (short)-1 : 0; |
| } |
| |
| /** |
| * This will return an {@link Object} that is distinct from the given <code>feature</code>'s default |
| * value, yet having the same type. |
| * <table> |
| * <tr> |
| * <td>Type</td> |
| * <td>Returned value</td> |
| * </tr> |
| * <tr> |
| * <td>EBoolean_OBJECT</td> |
| * <td>{@link Boolean#FALSE} if default is {@link Boolean#TRUE}, {@link Boolean#TRUE} otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>EINTEGER_OBJECT</td> |
| * <td><code>-1</code> if default is <code>0</code>, <code>0</code> otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>EBYTE_OBJECT</td> |
| * <td><code>-1</code> if default is <code>0</code>, <code>0</code> otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>ECHARACTER_OBJECT</td> |
| * <td><code>'b'</code> if default is <code>'a'</code>, <code>'a'</code> otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>EDOUBLE_OBJECT</td> |
| * <td><code>-1d</code> if default is <code>0d</code>, <code>0d</code> otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>EFLOAT_OBJECT</td> |
| * <td><code>-1f</code> if default is <code>0f</code>, <code>0f</code> otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>ELONG_OBJECT</td> |
| * <td><code>-1L</code> if default is <code>0L</code>, <code>0L</code> otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>ESHORT_OBJECT</td> |
| * <td><code>-1</code> if default is <code>0</code>, <code>0</code> otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>ESTRING</td> |
| * <td><code>"notdefault"</code> if default is <code>""</code>, <code>""</code> otherwise</td> |
| * </tr> |
| * <tr> |
| * <td>EDATE</td> |
| * <td>Returns the current date</td> |
| * </tr> |
| * <tr> |
| * <td>EJAVA_OBJECT</td> |
| * <td>Returns a new Object</td> |
| * </tr> |
| * </table> |
| * |
| * @param feature |
| * Feature which default value is to be considered. |
| * @return An {@link Object} that is distinct from the given <code>feature</code>'s default value. |
| * @generated |
| */ |
| protected Object getValueDistinctFromDefault(EStructuralFeature feature) { |
| final Object defaultValue = feature.getDefaultValue(); |
| if (feature.getEType() == EcorePackage.Literals.EBOOLEAN_OBJECT) { |
| return defaultValue.equals(Boolean.TRUE) ? Boolean.FALSE : Boolean.TRUE; |
| } else if (feature.getEType() == EcorePackage.Literals.EINTEGER_OBJECT) { |
| return defaultValue.equals(Integer.valueOf(0)) ? Integer.valueOf(-1) : Integer.valueOf(0); |
| } else if (feature.getEType() == EcorePackage.Literals.EBYTE_OBJECT) { |
| return defaultValue.equals(Byte.valueOf("0")) ? Byte.valueOf("-1") : Byte.valueOf("0"); |
| } else if (feature.getEType() == EcorePackage.Literals.ECHARACTER_OBJECT) { |
| return defaultValue.equals(Character.valueOf('a')) ? Character.valueOf('b') : Character |
| .valueOf('a'); |
| } else if (feature.getEType() == EcorePackage.Literals.EDOUBLE_OBJECT) { |
| return defaultValue.equals(Double.valueOf(0)) ? Double.valueOf(-1) : Double.valueOf(0); |
| } else if (feature.getEType() == EcorePackage.Literals.EFLOAT_OBJECT) { |
| return defaultValue.equals(Float.valueOf(0)) ? Float.valueOf(-1) : Float.valueOf(0); |
| } else if (feature.getEType() == EcorePackage.Literals.ELONG_OBJECT) { |
| return defaultValue.equals(Long.valueOf(0)) ? Long.valueOf(-1) : Long.valueOf(0); |
| } else if (feature.getEType() == EcorePackage.Literals.ESHORT_OBJECT) { |
| return defaultValue.equals(Short.valueOf((short)0)) ? Short.valueOf((short)-1) : Short |
| .valueOf((short)0); |
| } else if (feature.getEType() == EcorePackage.Literals.ESTRING) { |
| return "".equals(defaultValue) ? "notdefault" : ""; |
| } else if (feature.getEType() == EcorePackage.Literals.EDATE) { |
| return Calendar.getInstance().getTime(); |
| } else if (feature.getEType() == EcorePackage.Literals.EJAVA_OBJECT) { |
| return new Object(); |
| } else if (feature.getEType() == EcorePackage.Literals.ERESOURCE) { |
| return new XMIResourceImpl(); |
| } else { |
| throw new RuntimeException(); |
| } |
| } |
| |
| /** |
| * This basic implementation of an {@link org.eclipse.emf.common.notify.Adapter} will simply switch a |
| * boolean to true when it is notified of a change. |
| * |
| * @generated |
| */ |
| protected class MockEAdapter extends AdapterImpl { |
| /** |
| * {@inheritDoc} |
| * |
| * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification) |
| * @generated |
| */ |
| @Override |
| public void notifyChanged(Notification msg) { |
| super.notifyChanged(msg); |
| notified = true; |
| } |
| } |
| } |