Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 0400d8e9afd5fcd782e1cd83d6013d6cf5712db1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*******************************************************************************
 * Copyright (c) 2007, 2010 Oracle. 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:
 *     Oracle - initial API and implementation
 *******************************************************************************/
package org.eclipse.jpt.core.internal.jpa1.context.persistence;

import org.eclipse.core.resources.IFile;
import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
import org.eclipse.jpt.core.internal.context.persistence.AbstractMappingFileRef;
import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
import org.eclipse.jpt.utility.internal.iterables.SingleElementIterable;
import org.eclipse.text.edits.DeleteEdit;
import org.eclipse.text.edits.ReplaceEdit;

/**
 * <code>persistence.xml</code> file
 * <br>
 * <code>mapping-file</code> element
 */
public class GenericMappingFileRef
	extends AbstractMappingFileRef
{
	protected XmlMappingFileRef xmlMappingFileRef;


	// ********** construction/initialization **********

	public GenericMappingFileRef(PersistenceUnit parent, XmlMappingFileRef xmlMappingFileRef) {
		super(parent, xmlMappingFileRef.getFileName());
		this.xmlMappingFileRef = xmlMappingFileRef;
	}


	// ********** file name **********

	public void setFileName(String fileName) {
		String old = this.fileName;
		this.fileName = fileName;
		this.xmlMappingFileRef.setFileName(fileName);
		this.firePropertyChanged(FILE_NAME_PROPERTY, old, fileName);
	}

	protected void setFileName_(String newFileName) {
		String old = this.fileName;
		this.fileName = newFileName;
		this.firePropertyChanged(FILE_NAME_PROPERTY, old, newFileName);
	}


	// ********** MappingFileRef implementation **********

	public void update(XmlMappingFileRef mappingFileRef) {
		this.xmlMappingFileRef = mappingFileRef;
		this.setFileName_(mappingFileRef.getFileName());
		this.update();
	}

	public boolean isImplied() {
		return false;
	}

	public boolean containsOffset(int textOffset) {
		return this.xmlMappingFileRef.containsOffset(textOffset);
	}


	// ********** JpaStructureNode implementation **********

	public TextRange getSelectionTextRange() {
		return this.xmlMappingFileRef.getSelectionTextRange();
	}


	// ********** XmlContextNode implementation **********

	public TextRange getValidationTextRange() {
		return this.xmlMappingFileRef.getValidationTextRange();
	}


	// ********** refactoring **********

	public Iterable<DeleteEdit> createDeleteMappingFileEdits(IFile file) {
		if (this.isFor(file)) {
			return new SingleElementIterable<DeleteEdit>(this.createDeleteEdit());
		}
		return EmptyIterable.instance();
	}

	protected DeleteEdit createDeleteEdit() {
		return this.xmlMappingFileRef.createDeleteEdit();
	}

	@Override
	protected ReplaceEdit createReplaceEdit(IFile originalFile, String newName) {
		return this.xmlMappingFileRef.createReplaceEdit(originalFile, newName);
	}

}

Back to the top