001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 019 package org.apache.xpath.objects; 020 021 import org.apache.xml.dtm.DTM; 022 import org.apache.xpath.XPathContext; 023 /* 024 * 025 * @author igorh 026 * 027 * Simple wrapper to DTM and XPathContext objects. 028 * Used in XRTreeFrag for caching references to the objects. 029 */ 030 public final class DTMXRTreeFrag { 031 private DTM m_dtm; 032 private int m_dtmIdentity = DTM.NULL; 033 private XPathContext m_xctxt; 034 035 public DTMXRTreeFrag(int dtmIdentity, XPathContext xctxt){ 036 m_xctxt = xctxt; 037 m_dtmIdentity = dtmIdentity; 038 m_dtm = xctxt.getDTM(dtmIdentity); 039 } 040 041 public final void destruct(){ 042 m_dtm = null; 043 m_xctxt = null; 044 } 045 046 final DTM getDTM(){return m_dtm;} 047 public final int getDTMIdentity(){return m_dtmIdentity;} 048 final XPathContext getXPathContext(){return m_xctxt;} 049 050 public final int hashCode() { return m_dtmIdentity; } 051 public final boolean equals(Object obj) { 052 if (obj instanceof DTMXRTreeFrag) { 053 return (m_dtmIdentity == ((DTMXRTreeFrag)obj).getDTMIdentity()); 054 } 055 return false; 056 } 057 058 }