diff options
Diffstat (limited to 'jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPACheckSum.java')
-rw-r--r-- | jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPACheckSum.java | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPACheckSum.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPACheckSum.java deleted file mode 100644 index 556c213970..0000000000 --- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPACheckSum.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * <copyright> - * - * Copyright (c) 2005, 2010 SAP AG. - * 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: - * Stefan Dimov - initial API, implementation and documentation - * - * </copyright> - * - *******************************************************************************/ -package org.eclipse.jpt.jpadiagrameditor.ui.internal.util; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.graphiti.mm.pictograms.Diagram; -import org.eclipse.graphiti.mm.pictograms.Shape; -import org.eclipse.graphiti.services.Graphiti; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jpt.jpa.core.JpaProject; -import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType; -import org.eclipse.jpt.jpa.core.context.persistence.PersistenceUnit; - -public class JPACheckSum { - - private static JPACheckSum instance = null; - private static MessageDigest md5 = null; - - public static synchronized JPACheckSum INSTANCE() { - if (instance == null) { - try { - md5 = MessageDigest.getInstance("MD5"); //$NON-NLS-1$ - } catch (NoSuchAlgorithmException e) { - System.err.println("Couldn't create instance of MD5"); //$NON-NLS-1$ - e.printStackTrace(); - return null; - } - instance = new JPACheckSum(); - } - return instance; - } - - public String getSavedShapeMD5(Shape sh) { - String checkSumString = Graphiti.getPeService().getPropertyValue(sh, JPAEditorConstants.PROP_ENTITY_CHECKSUM); - if (checkSumString == null) - return ""; //$NON-NLS-1$ - return checkSumString; - } - - public void assignEntityShapesMD5Strings(Diagram d, JpaProject jpaProject) { - PersistenceUnit pu = JpaArtifactFactory.instance().getPersistenceUnit(jpaProject); - List<Shape> picts = d.getChildren(); - if (picts.size() == 0) - return; - Iterator<Shape> it = picts.iterator(); - while (it.hasNext()) { - Shape pict = it.next(); - String name = Graphiti.getPeService().getPropertyValue(pict, JPAEditorConstants.PROP_ENTITY_CLASS_NAME); - JavaPersistentType jpt = JpaArtifactFactory.instance().getJPT(name, pu); - String hash = ""; //$NON-NLS-1$ - if (jpt != null) { - ICompilationUnit cu = JPAEditorUtil.getCompilationUnit(jpt); - hash = generateCompilationUnitMD5String(cu); - } - Graphiti.getPeService().setPropertyValue(pict, JPAEditorConstants.PROP_ENTITY_CHECKSUM, hash); - } - } - - - public String generateCompilationUnitMD5String(ICompilationUnit cu) { - String src = null; - try { - src = cu.getSource(); - } catch (JavaModelException e) { - System.err.println("Can't get the source of the compilation unit"); //$NON-NLS-1$ - e.printStackTrace(); - return null; - } - byte[] res = md5.digest(src.getBytes()); - StringBuilder sb = new StringBuilder(); - for (byte b : res) - sb.append(Byte.toString(b)); - return sb.toString(); - } - - public boolean isEntityModelChanged(Shape sh, JpaProject jpaProject) { - if (sh == null) - return true; - PersistenceUnit pu = JpaArtifactFactory.instance().getPersistenceUnit(jpaProject); - String name = Graphiti.getPeService().getPropertyValue(sh, JPAEditorConstants.PROP_ENTITY_CLASS_NAME); - JavaPersistentType jpt = JpaArtifactFactory.instance().getJPT(name, pu); - String savedMD5 = getSavedShapeMD5(sh); - String actualMD5 = ""; //$NON-NLS-1$ - if (jpt != null) { - ICompilationUnit cu = JPAEditorUtil.getCompilationUnit(jpt); - actualMD5 = generateCompilationUnitMD5String(cu); - } - return !savedMD5.equals(actualMD5); - } - - public boolean isModelDifferentFromDiagram(Diagram d, JpaProject jpaProject) { - List<Shape> picts = d.getChildren(); - if (picts.size() == 0) - return false; - Iterator<Shape> it = picts.iterator(); - while (it.hasNext()) { - Shape pict = it.next(); - if (isEntityModelChanged(pict, jpaProject)) - return true; - } - return false; - } -} |