1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the  "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *     http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19package org.apache.xpath.objects;
20
21import org.apache.xml.dtm.DTM;
22import org.apache.xpath.XPathContext;
23/*
24 *
25 * @author igorh
26 *
27 * Simple wrapper to DTM and XPathContext objects.
28 * Used in XRTreeFrag for caching references to the objects.
29 */
30 public final class DTMXRTreeFrag {
31  private DTM m_dtm;
32  private int m_dtmIdentity = DTM.NULL;
33  private XPathContext m_xctxt;
34
35  public DTMXRTreeFrag(int dtmIdentity, XPathContext xctxt){
36      m_xctxt = xctxt;
37      m_dtmIdentity = dtmIdentity;
38      m_dtm = xctxt.getDTM(dtmIdentity);
39    }
40
41  public final void destruct(){
42    m_dtm = null;
43    m_xctxt = null;
44 }
45
46final  DTM getDTM(){return m_dtm;}
47public final  int getDTMIdentity(){return m_dtmIdentity;}
48final  XPathContext getXPathContext(){return m_xctxt;}
49
50public final int hashCode() { return m_dtmIdentity; }
51public final boolean equals(Object obj) {
52   if (obj instanceof DTMXRTreeFrag) {
53       return (m_dtmIdentity == ((DTMXRTreeFrag)obj).getDTMIdentity());
54   }
55   return false;
56 }
57
58}
59