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
void setPath(const QString &path)
Get path associated with the object identified by key.
ctkAbstractFactory is the base class of all the factory where items need to be registered before bein...
ctkAbstractFactoryItem< BaseClassType > * item(const QString &itemKey) const
Get a Factory item given its itemKey. Return 0 if any.
QString itemKey(const QFileInfo &file) const
virtual bool isValidFile(const QFileInfo &file) const
void registerAllFileItems(const QStringList &directories)
virtual QString path(const QString &key)
Get path associated with the library identified by key.
virtual QString fileNameToKey(const QString &path) const
bool registerFileItem(const QString &key, const QFileInfo &file)
virtual ctkAbstractFactoryItem< BaseClassType > * createFactoryFileBasedItem()
QString registerFileItem(const QFileInfo &file)
virtual void initItem(ctkAbstractFactoryItem< BaseClassType > *item)