1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #include <entity.hxx> 29 30 #include <string.h> 31 32 33 namespace DOM 34 { 35 36 CEntity::CEntity(CDocument const& rDocument, ::osl::Mutex const& rMutex, 37 xmlEntityPtr const pEntity) 38 : CEntity_Base(rDocument, rMutex, 39 NodeType_ENTITY_NODE, reinterpret_cast<xmlNodePtr>(pEntity)) 40 , m_aEntityPtr(pEntity) 41 { 42 } 43 44 bool CEntity::IsChildTypeAllowed(NodeType const nodeType) 45 { 46 switch (nodeType) { 47 case NodeType_ELEMENT_NODE: 48 case NodeType_PROCESSING_INSTRUCTION_NODE: 49 case NodeType_COMMENT_NODE: 50 case NodeType_TEXT_NODE: 51 case NodeType_CDATA_SECTION_NODE: 52 case NodeType_ENTITY_REFERENCE_NODE: 53 return true; 54 default: 55 return false; 56 } 57 } 58 59 /** 60 For unparsed entities, the name of the notation for the entity. 61 */ 62 OUString SAL_CALL CEntity::getNotationName() throw (RuntimeException) 63 { 64 OSL_ENSURE(false, 65 "CEntity::getNotationName: not implemented (#i113683#)"); 66 return OUString(); 67 } 68 69 /** 70 The public identifier associated with the entity, if specified. 71 */ 72 OUString SAL_CALL CEntity::getPublicId() throw (RuntimeException) 73 { 74 ::osl::MutexGuard const g(m_rMutex); 75 76 OUString aID; 77 if(m_aEntityPtr != NULL) 78 { 79 aID = OUString((sal_Char*)m_aEntityPtr->ExternalID, strlen((char*)m_aEntityPtr->ExternalID), RTL_TEXTENCODING_UTF8); 80 } 81 return aID; 82 } 83 84 /** 85 The system identifier associated with the entity, if specified. 86 */ 87 OUString SAL_CALL CEntity::getSystemId() throw (RuntimeException) 88 { 89 ::osl::MutexGuard const g(m_rMutex); 90 91 OUString aID; 92 if(m_aEntityPtr != NULL) 93 { 94 aID = OUString((sal_Char*)m_aEntityPtr->SystemID, strlen((char*)m_aEntityPtr->SystemID), RTL_TEXTENCODING_UTF8); 95 } 96 return aID; 97 } 98 OUString SAL_CALL CEntity::getNodeName()throw (RuntimeException) 99 { 100 ::osl::MutexGuard const g(m_rMutex); 101 102 OUString aName; 103 if (m_aNodePtr != NULL) 104 { 105 const xmlChar* xName = m_aNodePtr->name; 106 aName = OUString((sal_Char*)xName, strlen((char*)xName), RTL_TEXTENCODING_UTF8); 107 } 108 return aName; 109 } 110 OUString SAL_CALL CEntity::getNodeValue() throw (RuntimeException) 111 { 112 return OUString(); 113 } 114 } 115