9 #ifndef RMF_SEQUENCE_DECORATORS_H
10 #define RMF_SEQUENCE_DECORATORS_H
12 #include <RMF/config.h>
19 #include <RMF/internal/paths.h>
21 #include <boost/lexical_cast.hpp>
39 residue_index_(residue_index),
40 residue_type_(residue_type) {
44 Int get_residue_index()
const {
46 return get_node().get_value(residue_index_);
47 } RMF_DECORATOR_CATCH( );
49 Int get_frame_residue_index()
const {
51 return get_node().get_frame_value(residue_index_);
52 } RMF_DECORATOR_CATCH( );
54 Int get_static_residue_index()
const {
56 return get_node().get_static_value(residue_index_);
57 } RMF_DECORATOR_CATCH( );
61 String get_residue_type()
const {
63 return get_node().get_value(residue_type_);
64 } RMF_DECORATOR_CATCH( );
66 String get_frame_residue_type()
const {
68 return get_node().get_frame_value(residue_type_);
69 } RMF_DECORATOR_CATCH( );
71 String get_static_residue_type()
const {
73 return get_node().get_static_value(residue_type_);
74 } RMF_DECORATOR_CATCH( );
77 static std::string get_decorator_type_name() {
78 return "ResidueConst";
94 void set_residue_index(
Int v) {
97 } RMF_DECORATOR_CATCH( );
99 void set_frame_residue_index(
Int v) {
102 } RMF_DECORATOR_CATCH( );
104 void set_static_residue_index(
Int v) {
107 } RMF_DECORATOR_CATCH( );
111 void set_residue_type(
String v) {
114 } RMF_DECORATOR_CATCH( );
116 void set_frame_residue_type(
String v) {
119 } RMF_DECORATOR_CATCH( );
121 void set_static_residue_type(
String v) {
124 } RMF_DECORATOR_CATCH( );
127 static std::string get_decorator_type_name() {
143 cat_(fh.get_category(
"sequence")),
144 residue_index_(fh.
get_key<IntTag>(cat_,
"residue index")), residue_type_(fh.
get_key<StringTag>(cat_,
"residue type")) {
147 cat_(fh.get_category(
"sequence")),
148 residue_index_(fh.
get_key<IntTag>(cat_,
"residue index")), residue_type_(fh.
get_key<StringTag>(cat_,
"residue type")) {
152 RMF_USAGE_CHECK((nh.get_type() ==
RMF::REPRESENTATION), std::string(
"Bad node type. Got \"")
153 + boost::lexical_cast<std::string>(nh.get_type())
154 +
"\" in decorator type Residue");
160 RMF_USAGE_CHECK((nh.get_type() ==
RMF::REPRESENTATION), std::string(
"Bad node type. Got \"")
161 + boost::lexical_cast<std::string>(nh.get_type())
162 +
"\" in decorator type Residue");
163 return Residue(nh, residue_index_,
170 && !nh.get_value(residue_index_).get_is_null();
174 && !nh.get_static_value(residue_index_).get_is_null()
175 && !nh.get_static_value(residue_type_).get_is_null();
177 RMF_SHOWABLE(ResidueFactory,
"ResidueFactory");
180 struct ResidueConstFactory:
public ResidueFactory {
181 ResidueConstFactory(FileConstHandle fh):
184 ResidueConstFactory(FileHandle fh):
215 sequence_offset_(sequence_offset),
216 uniprot_accession_(uniprot_accession),
217 label_asym_id_(label_asym_id),
218 chain_type_(chain_type) {
222 String get_chain_id()
const {
224 return get_node().get_value(chain_id_);
225 } RMF_DECORATOR_CATCH( );
227 String get_frame_chain_id()
const {
229 return get_node().get_frame_value(chain_id_);
230 } RMF_DECORATOR_CATCH( );
232 String get_static_chain_id()
const {
234 return get_node().get_static_value(chain_id_);
235 } RMF_DECORATOR_CATCH( );
239 String get_sequence()
const {
241 if (!get_node().get_has_value(sequence_))
return "";
242 return get_node().get_value(sequence_);
243 } RMF_DECORATOR_CATCH( );
245 String get_frame_sequence()
const {
247 if (!get_node().get_has_value(sequence_))
return "";
248 return get_node().get_frame_value(sequence_);
249 } RMF_DECORATOR_CATCH( );
251 String get_static_sequence()
const {
253 if (!get_node().get_has_value(sequence_))
return "";
254 return get_node().get_static_value(sequence_);
255 } RMF_DECORATOR_CATCH( );
259 Int get_sequence_offset()
const {
261 if (!get_node().get_has_value(sequence_offset_))
return 0;
262 return get_node().get_value(sequence_offset_);
263 } RMF_DECORATOR_CATCH( );
265 Int get_frame_sequence_offset()
const {
267 if (!get_node().get_has_value(sequence_offset_))
return 0;
268 return get_node().get_frame_value(sequence_offset_);
269 } RMF_DECORATOR_CATCH( );
271 Int get_static_sequence_offset()
const {
273 if (!get_node().get_has_value(sequence_offset_))
return 0;
274 return get_node().get_static_value(sequence_offset_);
275 } RMF_DECORATOR_CATCH( );
279 String get_uniprot_accession()
const {
281 if (!get_node().get_has_value(uniprot_accession_))
return "";
282 return get_node().get_value(uniprot_accession_);
283 } RMF_DECORATOR_CATCH( );
285 String get_frame_uniprot_accession()
const {
287 if (!get_node().get_has_value(uniprot_accession_))
return "";
288 return get_node().get_frame_value(uniprot_accession_);
289 } RMF_DECORATOR_CATCH( );
291 String get_static_uniprot_accession()
const {
293 if (!get_node().get_has_value(uniprot_accession_))
return "";
294 return get_node().get_static_value(uniprot_accession_);
295 } RMF_DECORATOR_CATCH( );
299 String get_label_asym_id()
const {
301 if (!get_node().get_has_value(label_asym_id_))
return "";
302 return get_node().get_value(label_asym_id_);
303 } RMF_DECORATOR_CATCH( );
305 String get_frame_label_asym_id()
const {
307 if (!get_node().get_has_value(label_asym_id_))
return "";
308 return get_node().get_frame_value(label_asym_id_);
309 } RMF_DECORATOR_CATCH( );
311 String get_static_label_asym_id()
const {
313 if (!get_node().get_has_value(label_asym_id_))
return "";
314 return get_node().get_static_value(label_asym_id_);
315 } RMF_DECORATOR_CATCH( );
319 String get_chain_type()
const {
321 if (!get_node().get_has_value(chain_type_))
return "UnknownChainType";
322 return get_node().get_value(chain_type_);
323 } RMF_DECORATOR_CATCH( );
325 String get_frame_chain_type()
const {
327 if (!get_node().get_has_value(chain_type_))
return "UnknownChainType";
328 return get_node().get_frame_value(chain_type_);
329 } RMF_DECORATOR_CATCH( );
331 String get_static_chain_type()
const {
333 if (!get_node().get_has_value(chain_type_))
return "UnknownChainType";
334 return get_node().get_static_value(chain_type_);
335 } RMF_DECORATOR_CATCH( );
338 static std::string get_decorator_type_name() {
341 RMF_SHOWABLE(
ChainConst,
"Chain: " << get_node());
363 void set_chain_id(
String v) {
366 } RMF_DECORATOR_CATCH( );
368 void set_frame_chain_id(
String v) {
371 } RMF_DECORATOR_CATCH( );
373 void set_static_chain_id(
String v) {
376 } RMF_DECORATOR_CATCH( );
380 void set_sequence(
String v) {
383 } RMF_DECORATOR_CATCH( );
385 void set_frame_sequence(
String v) {
388 } RMF_DECORATOR_CATCH( );
390 void set_static_sequence(
String v) {
393 } RMF_DECORATOR_CATCH( );
397 void set_sequence_offset(
Int v) {
399 get_node().
set_value(sequence_offset_, v);
400 } RMF_DECORATOR_CATCH( );
402 void set_frame_sequence_offset(
Int v) {
405 } RMF_DECORATOR_CATCH( );
407 void set_static_sequence_offset(
Int v) {
410 } RMF_DECORATOR_CATCH( );
414 void set_uniprot_accession(
String v) {
416 get_node().
set_value(uniprot_accession_, v);
417 } RMF_DECORATOR_CATCH( );
419 void set_frame_uniprot_accession(
String v) {
422 } RMF_DECORATOR_CATCH( );
424 void set_static_uniprot_accession(
String v) {
427 } RMF_DECORATOR_CATCH( );
431 void set_label_asym_id(
String v) {
434 } RMF_DECORATOR_CATCH( );
436 void set_frame_label_asym_id(
String v) {
439 } RMF_DECORATOR_CATCH( );
441 void set_static_label_asym_id(
String v) {
444 } RMF_DECORATOR_CATCH( );
448 void set_chain_type(
String v) {
451 } RMF_DECORATOR_CATCH( );
453 void set_frame_chain_type(
String v) {
456 } RMF_DECORATOR_CATCH( );
458 void set_static_chain_type(
String v) {
461 } RMF_DECORATOR_CATCH( );
464 static std::string get_decorator_type_name() {
488 cat_(fh.get_category(
"sequence")),
489 chain_id_(fh.
get_key<StringTag>(cat_,
"chain id")), sequence_(fh.
get_key<StringTag>(cat_,
"sequence")), sequence_offset_(fh.
get_key<IntTag>(cat_,
"sequence offset")), uniprot_accession_(fh.
get_key<StringTag>(cat_,
"uniprot accession")), label_asym_id_(fh.
get_key<StringTag>(cat_,
"label asym id")), chain_type_(fh.
get_key<StringTag>(cat_,
"chain type")) {
492 cat_(fh.get_category(
"sequence")),
493 chain_id_(fh.
get_key<StringTag>(cat_,
"chain id")), sequence_(fh.
get_key<StringTag>(cat_,
"sequence")), sequence_offset_(fh.
get_key<IntTag>(cat_,
"sequence offset")), uniprot_accession_(fh.
get_key<StringTag>(cat_,
"uniprot accession")), label_asym_id_(fh.
get_key<StringTag>(cat_,
"label asym id")), chain_type_(fh.
get_key<StringTag>(cat_,
"chain type")) {
498 + boost::lexical_cast<std::string>(nh.
get_type())
499 +
"\" in decorator type Chain");
510 + boost::lexical_cast<std::string>(nh.
get_type())
511 +
"\" in decorator type Chain");
512 return Chain(nh, chain_id_,
523 && !nh.get_value(chain_id_).get_is_null();
527 && !nh.get_static_value(chain_id_).get_is_null();
529 RMF_SHOWABLE(ChainFactory,
"ChainFactory");
532 struct ChainConstFactory:
public ChainFactory {
533 ChainConstFactory(FileConstHandle fh):
536 ChainConstFactory(FileHandle fh):
555 residue_indexes_(residue_indexes) {
559 Ints get_residue_indexes()
const {
561 return get_node().get_value(residue_indexes_);
562 } RMF_DECORATOR_CATCH( );
564 Ints get_frame_residue_indexes()
const {
566 return get_node().get_frame_value(residue_indexes_);
567 } RMF_DECORATOR_CATCH( );
569 Ints get_static_residue_indexes()
const {
571 return get_node().get_static_value(residue_indexes_);
572 } RMF_DECORATOR_CATCH( );
575 static std::string get_decorator_type_name() {
576 return "FragmentConst";
590 void set_residue_indexes(
Ints v) {
592 get_node().
set_value(residue_indexes_, v);
593 } RMF_DECORATOR_CATCH( );
595 void set_frame_residue_indexes(
Ints v) {
598 } RMF_DECORATOR_CATCH( );
600 void set_static_residue_indexes(
Ints v) {
603 } RMF_DECORATOR_CATCH( );
606 static std::string get_decorator_type_name() {
620 cat_(fh.get_category(
"sequence")),
621 residue_indexes_(fh.
get_key<IntsTag>(cat_,
"residue indexes")) {
624 cat_(fh.get_category(
"sequence")),
625 residue_indexes_(fh.
get_key<IntsTag>(cat_,
"residue indexes")) {
630 + boost::lexical_cast<std::string>(nh.
get_type())
631 +
"\" in decorator type Fragment");
637 + boost::lexical_cast<std::string>(nh.
get_type())
638 +
"\" in decorator type Fragment");
639 return Fragment(nh, residue_indexes_);
645 && !nh.get_value(residue_indexes_).get_is_null();
649 && !nh.get_static_value(residue_indexes_).get_is_null();
651 RMF_SHOWABLE(FragmentFactory,
"FragmentFactory");
654 struct FragmentConstFactory:
public FragmentFactory {
655 FragmentConstFactory(FileConstHandle fh):
656 FragmentFactory(fh) {
658 FragmentConstFactory(FileHandle fh):
659 FragmentFactory(fh) {
681 Ints get_indexes()
const {
683 return get_node().get_value(indexes_);
684 } RMF_DECORATOR_CATCH( );
686 Ints get_frame_indexes()
const {
688 return get_node().get_frame_value(indexes_);
689 } RMF_DECORATOR_CATCH( );
691 Ints get_static_indexes()
const {
693 return get_node().get_static_value(indexes_);
694 } RMF_DECORATOR_CATCH( );
697 static std::string get_decorator_type_name() {
698 return "BackwardsCompatibilityFragmentConst";
712 void set_indexes(
Ints v) {
715 } RMF_DECORATOR_CATCH( );
717 void set_frame_indexes(
Ints v) {
720 } RMF_DECORATOR_CATCH( );
722 void set_static_indexes(
Ints v) {
725 } RMF_DECORATOR_CATCH( );
728 static std::string get_decorator_type_name() {
729 return "BackwardsCompatibilityFragment";
742 cat_(fh.get_category(
"sequence")),
743 indexes_(fh.
get_key<IntsTag>(cat_,
"indexes")) {
746 cat_(fh.get_category(
"sequence")),
747 indexes_(fh.
get_key<IntsTag>(cat_,
"indexes")) {
752 + boost::lexical_cast<std::string>(nh.
get_type())
753 +
"\" in decorator type BackwardsCompatibilityFragment");
759 + boost::lexical_cast<std::string>(nh.
get_type())
760 +
"\" in decorator type BackwardsCompatibilityFragment");
767 && !nh.get_value(indexes_).get_is_null();
771 && !nh.get_static_value(indexes_).get_is_null();
773 RMF_SHOWABLE(BackwardsCompatibilityFragmentFactory,
"BackwardsCompatibilityFragmentFactory");
776 struct BackwardsCompatibilityFragmentConstFactory:
public BackwardsCompatibilityFragmentFactory {
777 BackwardsCompatibilityFragmentConstFactory(FileConstHandle fh):
778 BackwardsCompatibilityFragmentFactory(fh) {
780 BackwardsCompatibilityFragmentConstFactory(FileHandle fh):
781 BackwardsCompatibilityFragmentFactory(fh) {
795 std::array<IntKey, 2> residue_indexes_;
797 std::array<IntKey, 2> residue_indexes):
799 residue_indexes_(residue_indexes) {
803 IntRange get_residue_indexes()
const {
806 ret[0] = get_node().get_value(residue_indexes_[0]);
807 ret[1] = get_node().get_value(residue_indexes_[1]);
809 } RMF_DECORATOR_CATCH( );
811 IntRange get_static_residue_indexes()
const {
814 ret[0] = get_node().get_static_value(residue_indexes_[0]);
815 ret[1] = get_node().get_static_value(residue_indexes_[1]);
817 } RMF_DECORATOR_CATCH( );
819 IntRange get_frame_residue_indexes()
const {
822 ret[0] = get_node().get_frame_value(residue_indexes_[0]);
823 ret[1] = get_node().get_frame_value(residue_indexes_[1]);
825 } RMF_DECORATOR_CATCH( );
828 static std::string get_decorator_type_name() {
829 return "DomainConst";
831 RMF_SHOWABLE(
DomainConst,
"Domain: " << get_node());
838 std::array<IntKey, 2> residue_indexes):
843 void set_residue_indexes(
Int v0,
Int v1) {
845 get_node().
set_value(residue_indexes_[0], v0);
846 get_node().
set_value(residue_indexes_[1], v1);
847 } RMF_DECORATOR_CATCH( );
849 void set_frame_residue_indexes(
Int v0,
Int v1) {
853 } RMF_DECORATOR_CATCH( );
855 void set_static_residue_indexes(
Int v0,
Int v1) {
859 } RMF_DECORATOR_CATCH( );
862 static std::string get_decorator_type_name() {
872 std::array<IntKey, 2> residue_indexes_;
873 template <
class H> std::array<IntKey, 2> get_residue_indexes_keys(H fh)
const {
874 std::array<IntKey, 2> ret;
875 ret[0] = fh.template get_key<IntTag>(cat_,
"first residue index");
876 ret[1] = fh.template get_key<IntTag>(cat_,
"last residue index");
882 cat_(fh.get_category(
"sequence")),
883 residue_indexes_(get_residue_indexes_keys(fh)) {
886 cat_(fh.get_category(
"sequence")),
887 residue_indexes_(get_residue_indexes_keys(fh)) {
892 + boost::lexical_cast<std::string>(nh.
get_type())
893 +
"\" in decorator type Domain");
899 + boost::lexical_cast<std::string>(nh.
get_type())
900 +
"\" in decorator type Domain");
901 return Domain(nh, residue_indexes_);
907 && !nh.get_value(residue_indexes_[0]).get_is_null() && !nh.get_value(residue_indexes_[1]).get_is_null() && nh.get_value(residue_indexes_[0]) < nh.get_value(residue_indexes_[1]);
911 && !nh.get_static_value(residue_indexes_[0]).get_is_null() && !nh.get_static_value(residue_indexes_[1]).get_is_null() && nh.get_value(residue_indexes_[0]) < nh.get_value(residue_indexes_[1]);
913 RMF_SHOWABLE(DomainFactory,
"DomainFactory");
916 struct DomainConstFactory:
public DomainFactory {
917 DomainConstFactory(FileConstHandle fh):
920 DomainConstFactory(FileHandle fh):
939 type_name_(type_name) {
943 String get_type_name()
const {
945 return get_node().get_value(type_name_);
946 } RMF_DECORATOR_CATCH( );
948 String get_frame_type_name()
const {
950 return get_node().get_frame_value(type_name_);
951 } RMF_DECORATOR_CATCH( );
953 String get_static_type_name()
const {
955 return get_node().get_static_value(type_name_);
956 } RMF_DECORATOR_CATCH( );
959 static std::string get_decorator_type_name() {
962 RMF_SHOWABLE(
TypedConst,
"Typed: " << get_node());
974 void set_type_name(
String v) {
977 } RMF_DECORATOR_CATCH( );
979 void set_frame_type_name(
String v) {
982 } RMF_DECORATOR_CATCH( );
984 void set_static_type_name(
String v) {
987 } RMF_DECORATOR_CATCH( );
990 static std::string get_decorator_type_name() {
1004 cat_(fh.get_category(
"sequence")),
1005 type_name_(fh.
get_key<StringTag>(cat_,
"type name")) {
1008 cat_(fh.get_category(
"sequence")),
1009 type_name_(fh.
get_key<StringTag>(cat_,
"type name")) {
1014 + boost::lexical_cast<std::string>(nh.
get_type())
1015 +
"\" in decorator type Typed");
1021 + boost::lexical_cast<std::string>(nh.
get_type())
1022 +
"\" in decorator type Typed");
1023 return Typed(nh, type_name_);
1029 && !nh.get_value(type_name_).get_is_null();
1033 && !nh.get_static_value(type_name_).get_is_null();
1035 RMF_SHOWABLE(TypedFactory,
"TypedFactory");
1038 struct TypedConstFactory:
public TypedFactory {
1039 TypedConstFactory(FileConstHandle fh):
1042 TypedConstFactory(FileHandle fh):
1061 copy_index_(copy_index) {
1065 Int get_copy_index()
const {
1067 return get_node().get_value(copy_index_);
1068 } RMF_DECORATOR_CATCH( );
1070 Int get_frame_copy_index()
const {
1072 return get_node().get_frame_value(copy_index_);
1073 } RMF_DECORATOR_CATCH( );
1075 Int get_static_copy_index()
const {
1077 return get_node().get_static_value(copy_index_);
1078 } RMF_DECORATOR_CATCH( );
1081 static std::string get_decorator_type_name() {
1084 RMF_SHOWABLE(
CopyConst,
"Copy: " << get_node());
1096 void set_copy_index(
Int v) {
1099 } RMF_DECORATOR_CATCH( );
1101 void set_frame_copy_index(
Int v) {
1104 } RMF_DECORATOR_CATCH( );
1106 void set_static_copy_index(
Int v) {
1109 } RMF_DECORATOR_CATCH( );
1112 static std::string get_decorator_type_name() {
1126 cat_(fh.get_category(
"sequence")),
1127 copy_index_(fh.
get_key<IntTag>(cat_,
"copy index")) {
1130 cat_(fh.get_category(
"sequence")),
1131 copy_index_(fh.
get_key<IntTag>(cat_,
"copy index")) {
1136 + boost::lexical_cast<std::string>(nh.
get_type())
1137 +
"\" in decorator type Copy");
1143 + boost::lexical_cast<std::string>(nh.
get_type())
1144 +
"\" in decorator type Copy");
1145 return Copy(nh, copy_index_);
1151 && !nh.get_value(copy_index_).get_is_null();
1155 && !nh.get_static_value(copy_index_).get_is_null();
1157 RMF_SHOWABLE(CopyFactory,
"CopyFactory");
1160 struct CopyConstFactory:
public CopyFactory {
1161 CopyConstFactory(FileConstHandle fh):
1164 CopyConstFactory(FileHandle fh):
1183 state_index_(state_index) {
1187 Int get_state_index()
const {
1189 return get_node().get_value(state_index_);
1190 } RMF_DECORATOR_CATCH( );
1192 Int get_frame_state_index()
const {
1194 return get_node().get_frame_value(state_index_);
1195 } RMF_DECORATOR_CATCH( );
1197 Int get_static_state_index()
const {
1199 return get_node().get_static_value(state_index_);
1200 } RMF_DECORATOR_CATCH( );
1203 static std::string get_decorator_type_name() {
1204 return "StateConst";
1206 RMF_SHOWABLE(
StateConst,
"State: " << get_node());
1218 void set_state_index(
Int v) {
1221 } RMF_DECORATOR_CATCH( );
1223 void set_frame_state_index(
Int v) {
1226 } RMF_DECORATOR_CATCH( );
1228 void set_static_state_index(
Int v) {
1231 } RMF_DECORATOR_CATCH( );
1234 static std::string get_decorator_type_name() {
1248 cat_(fh.get_category(
"sequence")),
1249 state_index_(fh.
get_key<IntTag>(cat_,
"state index")) {
1252 cat_(fh.get_category(
"sequence")),
1253 state_index_(fh.
get_key<IntTag>(cat_,
"state index")) {
1258 + boost::lexical_cast<std::string>(nh.
get_type())
1259 +
"\" in decorator type State");
1265 + boost::lexical_cast<std::string>(nh.
get_type())
1266 +
"\" in decorator type State");
1267 return State(nh, state_index_);
1273 && !nh.get_value(state_index_).get_is_null();
1277 && !nh.get_static_value(state_index_).get_is_null();
1279 RMF_SHOWABLE(StateFactory,
"StateFactory");
1282 struct StateConstFactory:
public StateFactory {
1283 StateConstFactory(FileConstHandle fh):
1286 StateConstFactory(FileHandle fh):
1305 explicit_resolution_(explicit_resolution) {
1309 Float get_explicit_resolution()
const {
1311 return get_node().get_value(explicit_resolution_);
1312 } RMF_DECORATOR_CATCH( );
1314 Float get_frame_explicit_resolution()
const {
1316 return get_node().get_frame_value(explicit_resolution_);
1317 } RMF_DECORATOR_CATCH( );
1319 Float get_static_explicit_resolution()
const {
1321 return get_node().get_static_value(explicit_resolution_);
1322 } RMF_DECORATOR_CATCH( );
1325 static std::string get_decorator_type_name() {
1326 return "ExplicitResolutionConst";
1340 void set_explicit_resolution(
Float v) {
1342 get_node().
set_value(explicit_resolution_, v);
1343 } RMF_DECORATOR_CATCH( );
1345 void set_frame_explicit_resolution(
Float v) {
1348 } RMF_DECORATOR_CATCH( );
1350 void set_static_explicit_resolution(
Float v) {
1353 } RMF_DECORATOR_CATCH( );
1356 static std::string get_decorator_type_name() {
1357 return "ExplicitResolution";
1370 cat_(fh.get_category(
"sequence")),
1371 explicit_resolution_(fh.
get_key<FloatTag>(cat_,
"explicit resolution")) {
1374 cat_(fh.get_category(
"sequence")),
1375 explicit_resolution_(fh.
get_key<FloatTag>(cat_,
"explicit resolution")) {
1380 + boost::lexical_cast<std::string>(nh.
get_type())
1381 +
"\" in decorator type ExplicitResolution");
1387 + boost::lexical_cast<std::string>(nh.
get_type())
1388 +
"\" in decorator type ExplicitResolution");
1395 && !nh.get_value(explicit_resolution_).get_is_null();
1399 && !nh.get_static_value(explicit_resolution_).get_is_null();
1401 RMF_SHOWABLE(ExplicitResolutionFactory,
"ExplicitResolutionFactory");
1404 struct ExplicitResolutionConstFactory:
public ExplicitResolutionFactory {
1405 ExplicitResolutionConstFactory(FileConstHandle fh):
1406 ExplicitResolutionFactory(fh) {
1408 ExplicitResolutionConstFactory(FileHandle fh):
1409 ExplicitResolutionFactory(fh) {
1419 RMF_DISABLE_WARNINGS
Mostly empty base classes for decorators and factories.
const NodeType REPRESENTATION
Represent part of a molecule.
bool get_is(NodeConstHandle nh) const
A handle for a particular node in the hierarchy.
bool get_is(NodeConstHandle nh) const
The base class for decorators.
NodeType get_type() const
get the type of this node
bool get_is(NodeConstHandle nh) const
bool get_is(NodeConstHandle nh) const
A handle for a particular node in a read-only hierarchy.
bool get_is(NodeConstHandle nh) const
A handle for a read-only RMF file.
void set_value(ID< Tag > k, typename Tag::ArgumentType v) const
A handle for an RMF file.
The base class for Factories.
Declaration for RMF::FileHandle.
Declaration of NodeHandle.
bool get_is(NodeConstHandle nh) const
bool get_is(NodeConstHandle nh) const
void set_static_value(ID< Tag > k, typename Tag::ArgumentType v) const
set the value of the attribute k for all frames.
bool get_is(NodeConstHandle nh) const
ID< Tag > get_key(Category category, std::string name) const
Various general useful macros for IMP.
bool get_is(NodeConstHandle nh) const
void set_frame_value(ID< Tag > k, typename Tag::ArgumentType v) const
set the value of the attribute k for this node on the current frame.