/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #include #include // NOT FULLY DEFINED SERVICES #include #include #include "locs_le.hxx" namespace ary { namespace loc { struct Directory::Container { typedef SortedIds SortedChildList; SortedChildList aSubDirectories; SortedChildList aFiles; Container() : aSubDirectories(), aFiles() {} }; Directory::Directory(Le_id i_assignedRoot) : sLocalName(), nParentDirectory(0), nAssignedRoot(i_assignedRoot), aAssignedNode(), pChildren(new Container) { aAssignedNode.Assign_Entity(*this); } Directory::Directory( const String & i_localName, Le_id i_parentDirectory ) : sLocalName(i_localName), nParentDirectory(i_parentDirectory), nAssignedRoot(0), aAssignedNode(), pChildren(new Container) { aAssignedNode.Assign_Entity(*this); } Directory::~Directory() { } void Directory::Add_Dir(const Directory & i_dir) { pChildren->aSubDirectories.Add(i_dir.LeId()); } void Directory::Add_File(const File & i_file) { pChildren->aFiles.Add(i_file.LeId()); } Le_id Directory::Search_Dir(const String & i_name) const { return pChildren->aSubDirectories.Search(i_name); } Le_id Directory::Search_File(const String & i_name) const { return pChildren->aFiles.Search(i_name); } void Directory::do_Accept(csv::ProcessorIfc & io_processor) const { csv::CheckedCall(io_processor,*this); } ClassId Directory::get_AryClass() const { return class_id; } const String & Directory::inq_LocalName() const { return sLocalName; } Le_id Directory::inq_ParentDirectory() const { return nParentDirectory; } } // namespace loc } // namespace ary