/******************************************************************************* * Copyright (c) 2007-2009 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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 * * Contributor: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.hibernate.eclipse.jdt.ui.internal.jpa.process.wizard; import java.util.ArrayList; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Status; import org.eclipse.ltk.core.refactoring.Change; import org.eclipse.ltk.core.refactoring.CompositeChange; import org.eclipse.ltk.core.refactoring.Refactoring; import org.eclipse.ltk.core.refactoring.RefactoringStatus; import org.eclipse.ltk.core.refactoring.TextFileChange; import org.hibernate.eclipse.jdt.ui.internal.JdtUiMessages; import org.hibernate.eclipse.jdt.ui.internal.jpa.process.ChangeStructure; /** * Hibernate JPA refactoring * * @author Vitali */ public class HibernateJPARefactoring extends Refactoring { /** * change info storage */ protected ArrayList<ChangeStructure> changes; public HibernateJPARefactoring(ArrayList<ChangeStructure> changes) { this.changes = changes; } @Override public RefactoringStatus checkFinalConditions(IProgressMonitor pm){ return RefactoringStatus.create(Status.OK_STATUS); } @Override public RefactoringStatus checkInitialConditions(IProgressMonitor pm) { return RefactoringStatus.create(Status.OK_STATUS); } @Override public Change createChange(IProgressMonitor pm){ final CompositeChange cc = new CompositeChange(""); //$NON-NLS-1$ for (int i = 0; i < changes.size(); i++) { ChangeStructure cs = changes.get(i); final String change_name = cs.path.toString(); TextFileChange change = new TextFileChange(change_name, (IFile)cs.icu.getResource()); change.setSaveMode(TextFileChange.LEAVE_DIRTY); change.setEdit(cs.textEdit); cs.change = change; cc.add(change); } cc.markAsSynthetic(); return cc; } @Override public String getName() { return JdtUiMessages.SaveQueryEditorListener_composite_change_name; } }