CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkAbstractFileBasedFactory.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Library: CTK
4 
5  Copyright (c) Kitware Inc.
6 
7  Licensed under the Apache License, Version 2.0 (the "License");
8  you may not use this file except in compliance with the License.
9  You may obtain a copy of the License at
10 
11  http://www.apache.org/licenses/LICENSE-2.0.txt
12 
13  Unless required by applicable law or agreed to in writing, software
14  distributed under the License is distributed on an "AS IS" BASIS,
15  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  See the License for the specific language governing permissions and
17  limitations under the License.
18 
19 =========================================================================*/
20 
21 #ifndef __ctkAbstractFileBasedFactory_h
22 #define __ctkAbstractFileBasedFactory_h
23 
24 // Qt includes
25 #include <QFileInfo>
26 #include <QStringList>
27 
28 // CTK includes
29 #include "ctkAbstractFactory.h"
30 
31 //----------------------------------------------------------------------------
33 template<typename BaseClassType>
35  : public ctkAbstractFactoryItem<BaseClassType>
36 {
37 public:
39  void setPath(const QString& path);
40  QString path()const;
41 
42 private:
43  QString Path;
44 };
45 
46 //----------------------------------------------------------------------------
48 template<typename BaseClassType>
49 class ctkAbstractFileBasedFactory : public ctkAbstractFactory<BaseClassType>
50 {
51 public:
52  virtual bool isValidFile(const QFileInfo& file)const;
53  QString itemKey(const QFileInfo& file)const;
54 
57  QString registerFileItem(const QFileInfo& file);
58 
60  virtual QString path(const QString& key);
61 
62 protected:
63  void registerAllFileItems(const QStringList& directories);
64 
65  bool registerFileItem(const QString& key, const QFileInfo& file);
66 
69 
70  virtual QString fileNameToKey(const QString& path)const;
71 };
72 
73 #include "ctkAbstractFileBasedFactory.tpp"
74 
75 #endif
ctkAbstractFactory.h
ctkAbstractFileBasedFactory::createFactoryFileBasedItem
virtual ctkAbstractFactoryItem< BaseClassType > * createFactoryFileBasedItem()
ctkAbstractFactoryFileBasedItem
Definition: ctkAbstractFileBasedFactory.h:34
ctkAbstractFactory
ctkAbstractFactory is the base class of all the factory where items need to be registered before bein...
Definition: ctkAbstractFactory.h:100
ctkAbstractFileBasedFactory::registerAllFileItems
void registerAllFileItems(const QStringList &directories)
ctkAbstractFactoryFileBasedItem::path
QString path() const
ctkAbstractFileBasedFactory::path
virtual QString path(const QString &key)
Get path associated with the library identified by key.
ctkAbstractFactoryFileBasedItem::setPath
void setPath(const QString &path)
Get path associated with the object identified by key.
ctkAbstractFileBasedFactory
Definition: ctkAbstractFileBasedFactory.h:49
ctkAbstractFileBasedFactory::isValidFile
virtual bool isValidFile(const QFileInfo &file) const
ctkAbstractFileBasedFactory::initItem
virtual void initItem(ctkAbstractFactoryItem< BaseClassType > *item)
ctkAbstractFileBasedFactory::registerFileItem
QString registerFileItem(const QFileInfo &file)
ctkAbstractFileBasedFactory::fileNameToKey
virtual QString fileNameToKey(const QString &path) const
ctkAbstractFactory::item
ctkAbstractFactoryItem< BaseClassType > * item(const QString &itemKey) const
Get a Factory item given its itemKey. Return 0 if any.
ctkAbstractFactoryItem
Definition: ctkAbstractFactory.h:42
ctkAbstractFileBasedFactory::itemKey
QString itemKey(const QFileInfo &file) const