blob: a0c1c81f23532370311dec2217251256bed5da73 [file] [log] [blame]
david_williams96213482004-11-11 09:07:12 +00001/*******************************************************************************
nitind74c1c852010-06-03 07:24:16 +00002 * Copyright (c) 2001, 2010 IBM Corporation and others.
david_williams96213482004-11-11 09:07:12 +00003 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
amywuecebb042007-04-10 20:07:35 +00007 *
david_williams96213482004-11-11 09:07:12 +00008 * Contributors:
9 * IBM Corporation - initial API and implementation
10 * Jens Lukowski/Innoopract - initial renaming/restructuring
11 *
12 *******************************************************************************/
david_williams12ff79e2005-04-13 13:59:30 +000013package org.eclipse.wst.xml.ui.internal.contentassist;
david_williams96213482004-11-11 09:07:12 +000014
david_williamsb5d05632006-02-27 09:24:00 +000015import org.eclipse.wst.sse.core.StructuredModelManager;
david_williams4ad020f2005-04-18 08:00:30 +000016import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
david_williams4ad020f2005-04-18 08:00:30 +000017import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
david_williamsc06c86f2005-03-18 18:23:41 +000018import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
19import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
david_williams4ad020f2005-04-18 08:00:30 +000020import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
david_williams96213482004-11-11 09:07:12 +000021
22
23/**
24 * @author pavery
25 */
26public class ContextInfoModelUtil {
27 IStructuredDocument fDocument = null;
david_williams96213482004-11-11 09:07:12 +000028
29 ContextInfoModelUtil(IStructuredDocument doc) {
30 fDocument = doc;
31 }
32
33 public IStructuredDocument getDocument() {
34 return fDocument;
35 }
36
david_williams96213482004-11-11 09:07:12 +000037 public ModelQuery getModelQuery() {
38 ModelQuery mq = null;
39
nitind9a0f9332005-02-03 06:57:23 +000040 IStructuredModel xmlModel = null;
41 try {
42 xmlModel = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
43 mq = ModelQueryUtil.getModelQuery(xmlModel);
44 }
45 finally {
46 if (xmlModel != null) {
47 xmlModel.releaseFromRead();
48 }
49 }
david_williams96213482004-11-11 09:07:12 +000050 return mq;
51 }
52
david_williamsc39caaf2005-04-05 06:07:16 +000053 public IDOMNode getXMLNode(int offset) {
nitind9a0f9332005-02-03 06:57:23 +000054 IStructuredModel xmlModel = null;
david_williamsc39caaf2005-04-05 06:07:16 +000055 IDOMNode xmlNode = null;
nitind9a0f9332005-02-03 06:57:23 +000056 try {
57 xmlModel = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
nitind74c1c852010-06-03 07:24:16 +000058 if (xmlModel != null) {
59 xmlNode = (IDOMNode) xmlModel.getIndexedRegion(offset);
60 }
nitind9a0f9332005-02-03 06:57:23 +000061 }
62 finally {
amywu679e0862007-09-26 19:05:32 +000063 if (xmlModel != null)
64 xmlModel.releaseFromRead();
nitind9a0f9332005-02-03 06:57:23 +000065 }
david_williams96213482004-11-11 09:07:12 +000066 return xmlNode;
67 }
68}