diff --git a/README.md b/README.md index 4cb3119b..3c85a81b 100644 --- a/README.md +++ b/README.md @@ -354,6 +354,12 @@ include: # and specializations of template Class (including Class) specializations: - clanguml::common::ClassT + # and all classes depending on Class D + dependants: + - clanguml::common::ClassD + # and all dependencies of ClassE + dependencies: + - clanguml::common::ClassE # and classes in direct relation to ClassB (including ClassB) context: - clanguml::common::ClassB diff --git a/docs/configuration_file.md b/docs/configuration_file.md index c3cbaf7e..2ce9ee6e 100644 --- a/docs/configuration_file.md +++ b/docs/configuration_file.md @@ -18,6 +18,9 @@ * `elements` - list of elements, i.e. specific classes, enums, templates to include * `access` - list of visibility scopes to include (e.g. `private`) * `subclasses` - include only subclasses of specified classes (and themselves) + * `specializations` - include all specializations or instantiations of a given template + * `dependants` - include all classes, which depend on the specified class + * `dependencies` - include all classes, which are dependencies of the specified class * `context` - include only entities in direct relationship with specified classes * `exclude` - definition of excqlusion patterns: * `namespaces` - list of namespaces to exclude @@ -25,6 +28,9 @@ * `elements` - list of elements, i.e. specific classes, enums, templates to exclude * `access` - list of visibility scopes to exclude (e.g. `private`) * `subclasses` - exclude subclasses of specified classes (and themselves) + * `specializations` - exclude all specializations or instantiations of a given template + * `dependants` - exclude all classes, which depend on the specified class + * `dependencies` - exclude all classes, which are dependencies of the specified class * `context` - exclude only entities in direct relationship with specified classes * `layout` - add layout hints for entities (classes, packages) * `plantuml` - verbatim PlantUML directives which should be added to a diagram diff --git a/docs/test_cases.md b/docs/test_cases.md index a163e02c..6d11ae7d 100644 --- a/docs/test_cases.md +++ b/docs/test_cases.md @@ -41,6 +41,7 @@ * [t00040](./test_cases/t00040.md) - Relationship and access filter test * [t00041](./test_cases/t00041.md) - Context diagram filter test * [t00042](./test_cases/t00042.md) - Specialization class template diagram filter test + * [t00043](./test_cases/t00043.md) - Dependants and dependencies diagram filter test ## Sequence diagrams * [t20001](./test_cases/t20001.md) - Basic sequence diagram test case * [t20002](./test_cases/t20002.md) - Free function sequence diagram test case diff --git a/docs/test_cases/t00002_class.svg b/docs/test_cases/t00002_class.svg index c4cb692f..1fe608dc 100644 --- a/docs/test_cases/t00002_class.svg +++ b/docs/test_cases/t00002_class.svg @@ -1,6 +1,6 @@ - + @@ -9,123 +9,123 @@ - - + + A - + - + foo_a() = 0 : void - + - + foo_c() = 0 : void - - + + B - + - + foo_a() : void - - + + C - + - + foo_c() : void - - + + D - + - + as : std::vector<A*> - + - + foo_a() : void - + - + foo_c() : void - - + + E - + - + as : std::vector<A*> - + - + foo_a() : void - + - + foo_c() : void - + This is class A - + This is class B - + This is class D which is a little like B diff --git a/docs/test_cases/t00003_class.svg b/docs/test_cases/t00003_class.svg index 3dc60b94..48b26041 100644 --- a/docs/test_cases/t00003_class.svg +++ b/docs/test_cases/t00003_class.svg @@ -1,6 +1,6 @@ - + @@ -9,194 +9,194 @@ - - + + A - + - + public_member : int - + - + static_int : int - + - + static_const_int : int const - + - + auto_member : unsigned long const - + - + protected_member : int - + - + private_member : int - + - + a : int - + - + b : int - + - + c : int - + - + A() : void - + - + A(int i) : void - + - + A(A&& ) : void - + - + A(A const& ) : void - + - + ~A() : void - + - + basic_method() : void - + - + static_method() : int - + - + const_method() const : void - + - + auto_method() : int - + - + double_int(int const i) : int - + - + sum(double const a, double const b) : double - + - + default_int(int i = 12) : int - + - + default_string(int i, std::string s = "abc") : std::string - + - + create_from_int(int i) : A - + - + protected_method() : void - + - + private_method() : void - + - + compare : std::function<bool(int const)> diff --git a/docs/test_cases/t00004_class.svg b/docs/test_cases/t00004_class.svg index 9a5b44ce..fccf9d2d 100644 --- a/docs/test_cases/t00004_class.svg +++ b/docs/test_cases/t00004_class.svg @@ -1,6 +1,6 @@ - + @@ -9,38 +9,38 @@ - - + + A - + - + foo() const : void - + - + foo2() const : void - - + + AA - - + + Lights @@ -50,8 +50,8 @@ Red - - + + AAA diff --git a/docs/test_cases/t00005_class.svg b/docs/test_cases/t00005_class.svg index 7ee78b68..33987316 100644 --- a/docs/test_cases/t00005_class.svg +++ b/docs/test_cases/t00005_class.svg @@ -1,6 +1,6 @@ - + @@ -9,204 +9,204 @@ - - + + A - - + + B - - + + C - - + + D - - + + E - - + + F - - + + G - - + + H - - + + I - - + + J - - + + K - - + + R - + - + some_int : int - + - + some_int_pointer : int* - + - + some_int_pointer_pointer : int** - + - + some_int_reference : int& - + - + a : A - + - + b : B* - + - + c : C& - + - + d : D const* - + - + e : E const& - + - + f : F&& - + - + g : G** - + - + h : H*** - + - + i : I*& - + - + j : J volatile* - + - + k : K* diff --git a/docs/test_cases/t00006_class.svg b/docs/test_cases/t00006_class.svg index e37c425e..180dbda4 100644 --- a/docs/test_cases/t00006_class.svg +++ b/docs/test_cases/t00006_class.svg @@ -1,6 +1,6 @@ - + @@ -9,136 +9,136 @@ - - + + A - - + + B - - + + C - - + + D - - + + E - - + + F - - + + G - - + + H - - + + I - - + + J - - + + K - - + + L - - + + M - - + + N - - + + NN - - + + NNN - - + + custom_container @@ -146,15 +146,15 @@ T - + - + data : std::vector<T> - + custom_container @@ -162,102 +162,102 @@ E - - + + R - + - + a : std::vector<A> - + - + b : std::vector<B*> - + - + c : std::map<int,C> - + - + d : std::map<int,D*> - + - + e : custom_container<E> - + - + f : std::vector<std::vector<F>> - + - + g : std::map<int,std::vector<G*>> - + - + h : std::array<H,10> - + - + i : std::array<I*,5> - + - + j : J[10] - + - + k : K*[20] - + - + lm : std::vector<std::pair<L,M>> - + - + ns : std::tuple<N,NN,NNN> diff --git a/docs/test_cases/t00007_class.svg b/docs/test_cases/t00007_class.svg index 1f2a76f1..a2dd0f5f 100644 --- a/docs/test_cases/t00007_class.svg +++ b/docs/test_cases/t00007_class.svg @@ -1,6 +1,6 @@ - + @@ -9,56 +9,56 @@ - - + + A - - + + B - - + + C - - + + R - + - + a : std::unique_ptr<A> - + - + b : std::shared_ptr<B> - + - + c : std::weak_ptr<C> diff --git a/docs/test_cases/t00008_class.svg b/docs/test_cases/t00008_class.svg index d037021f..7b5cd960 100644 --- a/docs/test_cases/t00008_class.svg +++ b/docs/test_cases/t00008_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -18,51 +18,51 @@ T,P,CMP,int N - + - + value : T - + - + pointer : T* - + - + reference : T& - + - + values : std::vector<P> - + - + ints : std::array<int,N> - + - + comparator : CMP - - + + Vector @@ -70,16 +70,16 @@ T - + - + values : std::vector<T> - - + + B @@ -87,15 +87,15 @@ T,C<> - + - + template_template : C<T> - + B @@ -103,33 +103,33 @@ int,Vector - - + + D - + - + ints : B<int,Vector> - + - + D(std::tuple<Items...>* ) : void - + - + add(int i) : void diff --git a/docs/test_cases/t00009_class.svg b/docs/test_cases/t00009_class.svg index f8cc1f10..81381e68 100644 --- a/docs/test_cases/t00009_class.svg +++ b/docs/test_cases/t00009_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -18,15 +18,15 @@ T - + - + value : T - + A @@ -34,7 +34,7 @@ int - + A @@ -42,7 +42,7 @@ std::string - + A @@ -50,32 +50,32 @@ std::vector<std::string> - - + + B - + - + aint : A<int> - + - + astring : A<std::string>* - + - + avector : A<std::vector<std::string>>& diff --git a/docs/test_cases/t00010_class.svg b/docs/test_cases/t00010_class.svg index 4105adec..c9d94ddd 100644 --- a/docs/test_cases/t00010_class.svg +++ b/docs/test_cases/t00010_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -18,22 +18,22 @@ T,P - + - + first : T - + - + second : P - + A @@ -41,8 +41,8 @@ T,std::string - - + + B @@ -50,15 +50,15 @@ T - + - + astring : A<T,std::string> - + B @@ -66,18 +66,18 @@ int - - + + C - + - + aintstring : B<int> diff --git a/docs/test_cases/t00011_class.svg b/docs/test_cases/t00011_class.svg index f3485ecf..36094fd9 100644 --- a/docs/test_cases/t00011_class.svg +++ b/docs/test_cases/t00011_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + D @@ -18,49 +18,49 @@ T - + - + value : T - - + + A - + - + foo() : void - - + + B - + - + m_a : A* - + - + foo() : void diff --git a/docs/test_cases/t00012_class.svg b/docs/test_cases/t00012_class.svg index b291eb7a..b5aa9f71 100644 --- a/docs/test_cases/t00012_class.svg +++ b/docs/test_cases/t00012_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -18,23 +18,23 @@ T,Ts... - + - + value : T - + - + values : int - - + + B @@ -43,15 +43,15 @@ - + - + ints : std::array<int,sizeof...(Is)> - - + + C @@ -60,14 +60,14 @@ - + - + ints : std::array<T,sizeof...(Is)> - + A @@ -75,7 +75,7 @@ int,std::string,float - + A @@ -83,7 +83,7 @@ int,std::string,bool - + B @@ -91,7 +91,7 @@ 3,2,1 - + B @@ -99,7 +99,7 @@ 1,1,1,1 - + C @@ -107,50 +107,50 @@ std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3 - - + + R - + - + a1 : A<int,std::string,float> - + - + a2 : A<int,std::string,bool> - + - + b1 : B<3,2,1> - + - + b2 : B<1,1,1,1> - + - + c1 : C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3> - + Long template annotation diff --git a/docs/test_cases/t00013_class.svg b/docs/test_cases/t00013_class.svg index 1bf6d946..77b95391 100644 --- a/docs/test_cases/t00013_class.svg +++ b/docs/test_cases/t00013_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + ABCD::F @@ -18,83 +18,83 @@ T - + - + f : T - - + + A - + - + a : int - - + + B - + - + b : int - - + + C - + - + c : int - - + + D - + - + d : int - + - + print(R* r) : void - - + + E @@ -102,15 +102,15 @@ T - + - + e : T - + E @@ -118,7 +118,7 @@ int - + F @@ -126,7 +126,7 @@ int - + E @@ -134,96 +134,96 @@ std::string - - + + R - + - + estring : E<std::string> - + - + get_a(A* a) : int - + - + get_b(B& b) : int - + - + get_const_b(B const& b) : int - + - + get_c(C c) : int - + - + get_d(D&& d) : int - + - + get_d2(D&& d) : int - + - + get_e(E<T> e) : T - + - + get_int_e(E<int> const& e) : int - + - + get_int_e2(E<int>& e) : int - + - + get_f(F<T> const& f) : T - + - + get_int_f(F<int> const& f) : int diff --git a/docs/test_cases/t00014_class.svg b/docs/test_cases/t00014_class.svg index 1be979f3..84c180a4 100644 --- a/docs/test_cases/t00014_class.svg +++ b/docs/test_cases/t00014_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -18,22 +18,22 @@ T,P - + - + t : T - + - + p : P - + A @@ -41,22 +41,22 @@ T,std::string - - + + B - + - + value : std::string - + A @@ -64,7 +64,7 @@ bool,std::string - + AString @@ -72,7 +72,7 @@ float - + AString @@ -80,7 +80,7 @@ int - + AString @@ -88,7 +88,7 @@ std::string - + GeneralCallback @@ -96,73 +96,73 @@ AIntString - + GeneralCallback - - + + R - + - + boolstring : A<bool,std::string> - + - + floatstring : AString<float> - + - + intstring : AIntString - + - + stringstring : AStringString - + - + bs : BVector - + - + bs2 : BVector2 - + - + cb : GeneralCallback<AIntString> - + - + vcb : VoidCallback diff --git a/docs/test_cases/t00015_class.svg b/docs/test_cases/t00015_class.svg index 98f3d372..c9c482a6 100644 --- a/docs/test_cases/t00015_class.svg +++ b/docs/test_cases/t00015_class.svg @@ -1,6 +1,6 @@ - + @@ -9,40 +9,40 @@ - - + + ns1::A - - + + ns1::ns2_v0_9_0::A - - + + ns1::Anon - - + + ns3::ns1::ns2::Anon - - + + ns3::B diff --git a/docs/test_cases/t00016_class.svg b/docs/test_cases/t00016_class.svg index 4f628784..d95b7d72 100644 --- a/docs/test_cases/t00016_class.svg +++ b/docs/test_cases/t00016_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + is_numeric<> @@ -19,8 +19,8 @@ value : enum - - + + is_numeric @@ -31,8 +31,8 @@ value : enum - - + + is_numeric @@ -43,8 +43,8 @@ value : enum - - + + is_numeric @@ -55,8 +55,8 @@ value : enum - - + + is_numeric diff --git a/docs/test_cases/t00017_class.svg b/docs/test_cases/t00017_class.svg index a7e8c6f6..82ba978c 100644 --- a/docs/test_cases/t00017_class.svg +++ b/docs/test_cases/t00017_class.svg @@ -1,6 +1,6 @@ - + @@ -9,135 +9,135 @@ - - + + A - - + + B - - + + C - - + + D - - + + E - - + + F - - + + G - - + + H - - + + I - - + + J - - + + K - - + + R - + - + some_int : int - + - + some_int_pointer : int* - + - + some_int_pointer_pointer : int** - + - + some_int_reference : int& - + - + R(int& some_int, C& cc, E const& ee, F&& ff, I*& ii) : void diff --git a/docs/test_cases/t00018_class.svg b/docs/test_cases/t00018_class.svg index 9b9481e4..97ac9fb4 100644 --- a/docs/test_cases/t00018_class.svg +++ b/docs/test_cases/t00018_class.svg @@ -1,6 +1,6 @@ - + @@ -9,118 +9,118 @@ - - + + impl::widget - + - + n : int - + - + draw(widget const& w) const : void - + - + draw(widget const& w) : void - + - + widget(int n) : void - - + + widget - + - + pImpl : std::unique_ptr<impl::widget> - + - + draw() const : void - + - + draw() : void - + - + shown() const : bool - + - + widget(int ) : void - + - + ~widget() : void - + - + widget(widget&& ) : void - + - + widget(widget const& ) : void - + - + operator=(widget&& ) : widget& - + - + operator=(widget const& ) : widget& diff --git a/docs/test_cases/t00019_class.svg b/docs/test_cases/t00019_class.svg index 1e0b637f..74c83b83 100644 --- a/docs/test_cases/t00019_class.svg +++ b/docs/test_cases/t00019_class.svg @@ -1,6 +1,6 @@ - + @@ -9,44 +9,44 @@ - - + + Base - + - + Base() : void - + - + ~Base() : void - + - + m1() : int - + - + m2() : std::string - - + + Layer1 @@ -55,22 +55,22 @@ - + - + m1() : int - + - + m2() : std::string - - + + Layer3 @@ -78,51 +78,51 @@ LowerLayer - + - + m_m1_calls : int - + - + m_m2_calls : int - + - + m1() : int - + - + m2() : std::string - + - + m1_calls() const : int - + - + m2_calls() const : int - - + + Layer2 @@ -131,14 +131,14 @@ - + - + all_calls_count() const : int - + Layer3 @@ -146,7 +146,7 @@ Base - + Layer2 @@ -154,7 +154,7 @@ Layer3<Base> - + Layer1 @@ -162,18 +162,18 @@ Layer2<Layer3<Base>> - - + + A - + - + layers : std::unique_ptr<Layer1<Layer2<Layer3<Base>>>> diff --git a/docs/test_cases/t00020_class.svg b/docs/test_cases/t00020_class.svg index 3277bf0f..e46f850f 100644 --- a/docs/test_cases/t00020_class.svg +++ b/docs/test_cases/t00020_class.svg @@ -1,6 +1,6 @@ - + @@ -9,174 +9,174 @@ - - + + ProductA - + - + ~ProductA() : void - + - + sell(int price) const = 0 : bool - - + + ProductA1 - + - + sell(int price) const : bool - - + + ProductA2 - + - + sell(int price) const : bool - - + + ProductB - + - + ~ProductB() : void - + - + buy(int price) const = 0 : bool - - + + ProductB1 - + - + buy(int price) const : bool - - + + ProductB2 - + - + buy(int price) const : bool - - + + AbstractFactory - + - + make_a() const = 0 : std::unique_ptr<ProductA> - + - + make_b() const = 0 : std::unique_ptr<ProductB> - - + + Factory1 - + - + make_a() const : std::unique_ptr<ProductA> - + - + make_b() const : std::unique_ptr<ProductB> - - + + Factory2 - + - + make_a() const : std::unique_ptr<ProductA> - + - + make_b() const : std::unique_ptr<ProductB> diff --git a/docs/test_cases/t00021_class.svg b/docs/test_cases/t00021_class.svg index 4a046efa..81ce3faa 100644 --- a/docs/test_cases/t00021_class.svg +++ b/docs/test_cases/t00021_class.svg @@ -1,6 +1,6 @@ - + @@ -9,151 +9,151 @@ - - + + Visitor - + - + ~Visitor() : void - + - + visit_A(A const& item) const = 0 : void - + - + visit_B(B const& item) const = 0 : void - - + + Visitor1 - + - + visit_A(A const& item) const : void - + - + visit_B(B const& item) const : void - - + + Visitor2 - + - + visit_A(A const& item) const : void - + - + visit_B(B const& item) const : void - - + + Visitor3 - + - + visit_A(A const& item) const : void - + - + visit_B(B const& item) const : void - - + + Item - + - + ~Item() : void - + - + accept(Visitor const& visitor) const = 0 : void - - + + A - + - + accept(Visitor const& visitor) const : void - - + + B - + - + accept(Visitor const& visitor) const : void diff --git a/docs/test_cases/t00022_class.svg b/docs/test_cases/t00022_class.svg index adbfd575..b8cc75a4 100644 --- a/docs/test_cases/t00022_class.svg +++ b/docs/test_cases/t00022_class.svg @@ -1,6 +1,6 @@ - + @@ -9,77 +9,77 @@ - - + + A - + - + template_method() : void - + - + method1() = 0 : void - + - + method2() = 0 : void - - + + A1 - + - + method1() : void - + - + method2() : void - - + + A2 - + - + method1() : void - + - + method2() : void diff --git a/docs/test_cases/t00023_class.svg b/docs/test_cases/t00023_class.svg index dbb083d8..d4060807 100644 --- a/docs/test_cases/t00023_class.svg +++ b/docs/test_cases/t00023_class.svg @@ -1,6 +1,6 @@ - + @@ -9,100 +9,100 @@ - - + + Strategy - + - + ~Strategy() : void - + - + algorithm() = 0 : void - - + + StrategyA - + - + algorithm() : void - - + + StrategyB - + - + algorithm() : void - - + + StrategyC - + - + algorithm() : void - - + + Context - + - + m_strategy : std::unique_ptr<Strategy> - + - + Context(std::unique_ptr<Strategy> strategy) : void - + - + apply() : void diff --git a/docs/test_cases/t00024_class.svg b/docs/test_cases/t00024_class.svg index dac9e7e7..30782ee8 100644 --- a/docs/test_cases/t00024_class.svg +++ b/docs/test_cases/t00024_class.svg @@ -1,6 +1,6 @@ - + @@ -9,113 +9,113 @@ - - + + Target - + - + ~Target() : void - + - + m1() = 0 : void - + - + m2() = 0 : void - - + + Target1 - + - + m1() : void - + - + m2() : void - - + + Target2 - + - + m1() : void - + - + m2() : void - - + + Proxy - + - + m_target : std::shared_ptr<Target> - + - + Proxy(std::shared_ptr<Target> target) : void - + - + m1() : void - + - + m2() : void diff --git a/docs/test_cases/t00025_class.svg b/docs/test_cases/t00025_class.svg index 9644e181..a3ac981d 100644 --- a/docs/test_cases/t00025_class.svg +++ b/docs/test_cases/t00025_class.svg @@ -1,6 +1,6 @@ - + @@ -9,52 +9,52 @@ - - + + Target1 - + - + m1() : void - + - + m2() : void - - + + Target2 - + - + m1() : void - + - + m2() : void - - + + Proxy @@ -62,36 +62,36 @@ T - + - + m_target : std::shared_ptr<T> - + - + Proxy(std::shared_ptr<T> target) : void - + - + m1() : void - + - + m2() : void - + Proxy @@ -99,7 +99,7 @@ Target1 - + Proxy @@ -107,25 +107,25 @@ Target2 - - + + ProxyHolder - + - + proxy1 : Proxy<Target1> - + - + proxy2 : Proxy<Target2> diff --git a/docs/test_cases/t00026_class.svg b/docs/test_cases/t00026_class.svg index 503a6de9..aea3e7ae 100644 --- a/docs/test_cases/t00026_class.svg +++ b/docs/test_cases/t00026_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + Memento @@ -18,30 +18,30 @@ T - + - + m_value : T - + - + Memento(T&& v) : void - + - + value() const : T - - + + Originator @@ -49,51 +49,51 @@ T - + - + m_value : T - + - + Originator(T&& v) : void - + - + memoize_value() const : Memento<T> - + - + load(Memento<T> const& m) : void - + - + print() const : void - + - + set(T&& v) : void - - + + Caretaker @@ -101,29 +101,29 @@ T - + - + m_mementos : std::unordered_map<std::string,Memento<T>> - + - + state(std::string const& n) : Memento<T>& - + - + set_state(std::string const& s, Memento<T>&& m) : void - + Caretaker @@ -131,7 +131,7 @@ std::string - + Originator @@ -139,25 +139,25 @@ std::string - - + + StringMemento - + - + caretaker : Caretaker<std::string> - + - + originator : Originator<std::string> diff --git a/docs/test_cases/t00027_class.svg b/docs/test_cases/t00027_class.svg index d8c7243b..ab30c5bf 100644 --- a/docs/test_cases/t00027_class.svg +++ b/docs/test_cases/t00027_class.svg @@ -1,6 +1,6 @@ - + @@ -9,30 +9,30 @@ - - + + Shape - + - + display() = 0 : void - + - + ~Shape() : void - - + + Line @@ -41,15 +41,15 @@ - + - + display() : void - - + + Text @@ -58,30 +58,30 @@ - + - + display() : void - - + + ShapeDecorator - + - + display() = 0 : void - - + + Color @@ -90,15 +90,15 @@ - + - + display() : void - - + + Weight @@ -107,14 +107,14 @@ - + - + display() : void - + Line @@ -122,7 +122,7 @@ Color,Weight - + Line @@ -130,7 +130,7 @@ Color - + Text @@ -138,7 +138,7 @@ Color,Weight - + Text @@ -146,39 +146,39 @@ Color - - + + Window - + - + border : Line<Color,Weight> - + - + divider : Line<Color> - + - + title : Text<Color,Weight> - + - + description : Text<Color> diff --git a/docs/test_cases/t00028_class.svg b/docs/test_cases/t00028_class.svg index 2c4fb96a..ff2fefd9 100644 --- a/docs/test_cases/t00028_class.svg +++ b/docs/test_cases/t00028_class.svg @@ -1,6 +1,6 @@ - + @@ -9,68 +9,68 @@ - - + + A - + A class note. - + A class note. - - + + B - + B class note. - + B class note. - - + + C - + C class note. - + C class note. - - + + D - + D class note. - + D class note. - - + + E @@ -78,27 +78,27 @@ T - + - + param : T - + E template class note. - - + + G - - + + F @@ -108,13 +108,13 @@ three - + F enum note. - + F enum note. - + E @@ -122,67 +122,67 @@ int - - + + R - + - + aaa : A - + - + bbb : B* - + - + ccc : C& - + - + ddd : std::vector<std::shared_ptr<D>> - + - + eee : E<int> - + - + ggg : G** - + - + R(C& c) : void - + R class note. - + R class note. diff --git a/docs/test_cases/t00029_class.svg b/docs/test_cases/t00029_class.svg index 1a02c3c7..c3491383 100644 --- a/docs/test_cases/t00029_class.svg +++ b/docs/test_cases/t00029_class.svg @@ -1,6 +1,6 @@ - + @@ -9,16 +9,16 @@ - - + + A - - + + C @@ -26,16 +26,16 @@ T - + - + param : T - - + + E @@ -45,64 +45,64 @@ three - - + + G1 - - + + G2 - - + + G3 - - + + G4 - - + + R - + - + g1 : G1 - + - + g3 : G3& - + - + g4 : std::shared_ptr<G4> diff --git a/docs/test_cases/t00030_class.svg b/docs/test_cases/t00030_class.svg index 6e6a5aa7..02f7eaf3 100644 --- a/docs/test_cases/t00030_class.svg +++ b/docs/test_cases/t00030_class.svg @@ -1,6 +1,6 @@ - + @@ -9,71 +9,71 @@ - - + + A - - + + B - - + + C - - + + D - - + + R - + - + aaa : A - + - + bbb : std::vector<B> - + - + ccc : std::vector<C> - + - + ddd : D diff --git a/docs/test_cases/t00031_class.svg b/docs/test_cases/t00031_class.svg index f6d712ef..fa1a941b 100644 --- a/docs/test_cases/t00031_class.svg +++ b/docs/test_cases/t00031_class.svg @@ -1,33 +1,33 @@ - + - + - + - - - + + + A - - + + B @@ -37,8 +37,8 @@ three - - + + C @@ -46,23 +46,23 @@ T - + - + ttt : T - - + + D - + C @@ -70,39 +70,39 @@ int - - + + R - + - + aaa : A* - + - + bbb : std::vector<B> - + - + ccc : C<int> - + - + ddd : D* diff --git a/docs/test_cases/t00032_class.svg b/docs/test_cases/t00032_class.svg index d66767f5..1ff3c685 100644 --- a/docs/test_cases/t00032_class.svg +++ b/docs/test_cases/t00032_class.svg @@ -1,6 +1,6 @@ - + @@ -9,69 +9,69 @@ - - + + Base - - + + TBase - - + + A - + - + operator()() : void - - + + B - + - + operator()() : void - - + + C - + - + operator()() : void - - + + Overload @@ -79,15 +79,15 @@ T,L,Ts... - + - + counter : L - + Overload @@ -95,18 +95,18 @@ TBase,int,A,B,C - - + + R - + - + overload : Overload<TBase,int,A,B,C> diff --git a/docs/test_cases/t00033_class.svg b/docs/test_cases/t00033_class.svg index 2221b02d..43b3fcf7 100644 --- a/docs/test_cases/t00033_class.svg +++ b/docs/test_cases/t00033_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -18,16 +18,16 @@ T - + - + aaa : T - - + + B @@ -35,16 +35,16 @@ T - + - + bbb : T - - + + C @@ -52,30 +52,30 @@ T - + - + ccc : T - - + + D - + - + ddd : int - + C @@ -83,7 +83,7 @@ D - + B @@ -91,7 +91,7 @@ std::unique_ptr<C<D>> - + A @@ -99,18 +99,18 @@ B<std::unique_ptr<C<D>>> - - + + R - + - + abc : A<B<std::unique_ptr<C<D>>>> diff --git a/docs/test_cases/t00034_class.svg b/docs/test_cases/t00034_class.svg index 3653409f..a3c5f9a1 100644 --- a/docs/test_cases/t00034_class.svg +++ b/docs/test_cases/t00034_class.svg @@ -1,6 +1,6 @@ - + @@ -9,30 +9,30 @@ - - + + Void - + - + operator==(Void const& ) const : bool - + - + operator!=(Void const& ) const : bool - - + + lift_void @@ -41,8 +41,8 @@ - - + + lift_void @@ -51,8 +51,8 @@ - - + + drop_void @@ -61,8 +61,8 @@ - - + + drop_void @@ -71,33 +71,33 @@ - - + + A - - + + R - + - + la : lift_void_t<A>* - + - + lv : lift_void_t<void>* diff --git a/docs/test_cases/t00035_class.svg b/docs/test_cases/t00035_class.svg index a32f7e37..df9d1993 100644 --- a/docs/test_cases/t00035_class.svg +++ b/docs/test_cases/t00035_class.svg @@ -1,6 +1,6 @@ - + @@ -9,40 +9,40 @@ - - + + Top - - + + Left - - + + Center - - + + Bottom - - + + Right diff --git a/docs/test_cases/t00036_class.svg b/docs/test_cases/t00036_class.svg index 9d711716..7563627e 100644 --- a/docs/test_cases/t00036_class.svg +++ b/docs/test_cases/t00036_class.svg @@ -1,6 +1,6 @@ - + @@ -9,23 +9,23 @@ - + ns1 - + ns11 - + ns111 - + ns2 - + ns22 - - + + E @@ -34,8 +34,8 @@ yellow - - + + A @@ -43,15 +43,15 @@ T - + - + a : T - + A @@ -59,23 +59,23 @@ int - - + + B - + - + a_int : A<int> - - + + C diff --git a/docs/test_cases/t00037_class.svg b/docs/test_cases/t00037_class.svg index 202d4d17..b27d972e 100644 --- a/docs/test_cases/t00037_class.svg +++ b/docs/test_cases/t00037_class.svg @@ -1,6 +1,6 @@ - + @@ -9,77 +9,77 @@ - - + + ST - + - + dimensions : «anonymous» - - + + <<anonymous>> - + - + t : double - + - + x : double - + - + y : double - + - + z : double - - + + A - + - + st : ST - + - + A() : void diff --git a/docs/test_cases/t00038_class.svg b/docs/test_cases/t00038_class.svg index 895b623f..b6b4ff29 100644 --- a/docs/test_cases/t00038_class.svg +++ b/docs/test_cases/t00038_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + thirdparty::ns1::color_t @@ -20,16 +20,16 @@ blue - - + + thirdparty::ns1::E - - + + property_t @@ -39,47 +39,47 @@ property_c - - + + A - - + + B - - + + C - - + + key_t - + - + key : std::string - - + + map @@ -88,8 +88,8 @@ - - + + map @@ -98,8 +98,8 @@ - - + + map @@ -108,8 +108,8 @@ - - + + map @@ -118,8 +118,8 @@ - - + + map diff --git a/docs/test_cases/t00039_class.svg b/docs/test_cases/t00039_class.svg index 224732bc..ff45521d 100644 --- a/docs/test_cases/t00039_class.svg +++ b/docs/test_cases/t00039_class.svg @@ -1,6 +1,6 @@ - + @@ -9,95 +9,95 @@ - - + + C - - + + D - - + + E - - + + CD - - + + DE - - + + CDE - - + + A - - + + AA - - + + AAA - + - + b : B* - - + + ns2::AAAA - - + + ns3::F @@ -105,16 +105,16 @@ T - + - + t : T* - - + + ns3::FF @@ -122,16 +122,16 @@ T,M - + - + m : M* - - + + ns3::FE @@ -139,16 +139,16 @@ T,M - + - + m : M* - - + + ns3::FFF @@ -156,11 +156,11 @@ T,M,N - + - + n : N* diff --git a/docs/test_cases/t00040_class.svg b/docs/test_cases/t00040_class.svg index 19963f49..437ae28b 100644 --- a/docs/test_cases/t00040_class.svg +++ b/docs/test_cases/t00040_class.svg @@ -1,6 +1,6 @@ - + @@ -9,71 +9,71 @@ - - + + A - + - + ii_ : int - + - + get_a() : int - - + + AA - - + + AAA - + - + b : B* - + - + get_aaa() : int - - + + R - + - + foo(A* a) : void diff --git a/docs/test_cases/t00041_class.svg b/docs/test_cases/t00041_class.svg index 5f8dcbc3..a94df930 100644 --- a/docs/test_cases/t00041_class.svg +++ b/docs/test_cases/t00041_class.svg @@ -1,6 +1,6 @@ - + @@ -9,93 +9,93 @@ - - + + R - - + + D - + - + rr : RR* - - + + E - - + + F - - + + RR - + - + e : E* - + - + f : F* - - + + RRR - - + + ns1::N - - + + ns1::NN - - + + ns1::NM diff --git a/docs/test_cases/t00042_class.svg b/docs/test_cases/t00042_class.svg index 6fa363ce..b7c868c5 100644 --- a/docs/test_cases/t00042_class.svg +++ b/docs/test_cases/t00042_class.svg @@ -1,6 +1,6 @@ - + - + @@ -9,95 +9,46 @@ - - - - - A - - T - + + + + + A + + T + - - - + + + - - a : T + + a : T - - - - - - A - - void - + + + + + + B + + T,K + - - - + + + - - a : void* + + b : T - - - - - - B - - T,K - + + + - - - + + bb : K - - b : T - - - - - - - bb : K - - - - - - A - - double - - - - - - A - - std::string - - - - - - B - - int,float - - - - - - - - - - + diff --git a/docs/test_cases/t00043.md b/docs/test_cases/t00043.md new file mode 100644 index 00000000..9abe06b9 --- /dev/null +++ b/docs/test_cases/t00043.md @@ -0,0 +1,86 @@ +# t00043 - Dependants and dependencies diagram filter test +## Config +```yaml +compilation_database_dir: .. +output_directory: puml +diagrams: + t00043_class: + type: class + generate_packages: true + glob: + - ../../tests/t00043/t00043.cc + using_namespace: + - clanguml::t00043 + include: + dependants: + - clanguml::t00043::dependants::A + dependencies: + - clanguml::t00043::dependencies::J + relationships: + - dependency +``` +## Source code +File t00043.cc +```cpp +namespace clanguml::t00043 { + +namespace dependants { +struct A { +}; + +struct B { + void b(A *a) { } +}; + +struct BB { + void bb(A *a) { } +}; + +struct C { + void c(B *b) { } +}; + +struct D { + void d(C *c) { } + void dd(BB *bb) { } +}; + +struct E { + void e(D *d) { } +}; + +struct F { +}; +} // namespace dependants + +namespace dependencies { + +struct G { +}; + +struct GG { +}; + +struct H { + void h(G *g) { } + void hh(GG *gg) { } +}; + +struct HH { + void hh(G *g) { } +}; + +struct I { + void i(H *h) { } +}; + +struct J { + void i(I *i) { } +}; + +} // namespace dependencies +} // namespace clanguml::t00043 + +``` +## Generated UML diagrams +![t00043_class](./t00043_class.svg "Dependants and dependencies diagram filter test") diff --git a/docs/test_cases/t00043_class.svg b/docs/test_cases/t00043_class.svg new file mode 100644 index 00000000..66e05d87 --- /dev/null +++ b/docs/test_cases/t00043_class.svg @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + dependants + + + dependencies + + + + + A + + + + + + + + B + + + + + + + + + b(dependants::A* a) : void + + + + + + BB + + + + + + + + + bb(dependants::A* a) : void + + + + + + C + + + + + + + + + c(dependants::B* b) : void + + + + + + D + + + + + + + + + d(dependants::C* c) : void + + + + + + + dd(dependants::BB* bb) : void + + + + + + E + + + + + + + + + e(dependants::D* d) : void + + + + + + G + + + + + + + + GG + + + + + + + + H + + + + + + + + + h(dependencies::G* g) : void + + + + + + + hh(dependencies::GG* gg) : void + + + + + + I + + + + + + + + + i(dependencies::H* h) : void + + + + + + J + + + + + + + + + i(dependencies::I* i) : void + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/test_cases/t30001_package.svg b/docs/test_cases/t30001_package.svg index c1773be3..ed94065e 100644 --- a/docs/test_cases/t30001_package.svg +++ b/docs/test_cases/t30001_package.svg @@ -1,6 +1,6 @@ - + @@ -9,67 +9,67 @@ - - + + A - - + + AA - - + + B - - + + AA - - + + AAA - - + + BBB - - + + BB - - + + AAA - - + + BBB - - + + BB - + A AAA note... - + This is namespace AA in namespace A - + This is namespace AA in namespace B - - - + + + diff --git a/docs/test_cases/t30002_package.svg b/docs/test_cases/t30002_package.svg index 301b66ee..75a56c55 100644 --- a/docs/test_cases/t30002_package.svg +++ b/docs/test_cases/t30002_package.svg @@ -1,6 +1,6 @@ - + @@ -9,121 +9,121 @@ - - + + A - - + + AA - - + + B - - + + BB - - + + A1 - - + + A2 - - + + A3 - - + + A4 - - + + A5 - - + + A6 - - + + A7 - - + + A8 - - + + A9 - - + + A10 - - + + A11 - - + + A12 - - + + A13 - - + + BBB - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/docs/test_cases/t30003_package.svg b/docs/test_cases/t30003_package.svg index a3f62de4..4557f700 100644 --- a/docs/test_cases/t30003_package.svg +++ b/docs/test_cases/t30003_package.svg @@ -1,6 +1,6 @@ - + @@ -9,39 +9,39 @@ - - + + ns1 - - + + ns3 «deprecated» - - + + ns1 - - + + ns2_v1_0_0 - - + + ns2_v0_9_0 «deprecated» - - + + ns2 - + diff --git a/docs/test_cases/t30004_package.svg b/docs/test_cases/t30004_package.svg index 97ddeabf..b76b31e0 100644 --- a/docs/test_cases/t30004_package.svg +++ b/docs/test_cases/t30004_package.svg @@ -1,6 +1,6 @@ - + @@ -9,50 +9,50 @@ - - + + A - + Package AAA. - + Package BBB. - + CCCC package note. - + Another CCC note. - + We skipped DDD. - - + + AAA - - + + BBB - - + + CCC - - + + EEE - - - - - + + + + + diff --git a/docs/test_cases/t30005_package.svg b/docs/test_cases/t30005_package.svg index de0e3e3e..cfc1be36 100644 --- a/docs/test_cases/t30005_package.svg +++ b/docs/test_cases/t30005_package.svg @@ -1,6 +1,6 @@ - + @@ -9,54 +9,54 @@ - - + + A - - + + AA - - + + B - - + + BB - - + + C - - + + CC - - + + AAA - - + + BBB - - + + CCC - + - + diff --git a/docs/test_cases/t30006_package.svg b/docs/test_cases/t30006_package.svg index 659a2731..760d637e 100644 --- a/docs/test_cases/t30006_package.svg +++ b/docs/test_cases/t30006_package.svg @@ -1,6 +1,6 @@ - + @@ -9,32 +9,32 @@ - - + + B - - + + A - - + + C - + Top A note. - + Bottom A note. - - - + + + - + diff --git a/docs/test_cases/t30007_package.svg b/docs/test_cases/t30007_package.svg index 758b3fd7..54fe5316 100644 --- a/docs/test_cases/t30007_package.svg +++ b/docs/test_cases/t30007_package.svg @@ -1,6 +1,6 @@ - + @@ -9,37 +9,37 @@ - - + + A - - + + B - - + + AA - - + + C - + Compare layout with t30006. - + Bottom A note. - - - + + + - + diff --git a/docs/test_cases/t40001_include.svg b/docs/test_cases/t40001_include.svg index 9f05caa9..2331b24e 100644 --- a/docs/test_cases/t40001_include.svg +++ b/docs/test_cases/t40001_include.svg @@ -1,6 +1,6 @@ - + @@ -9,40 +9,40 @@ - + src - + include - + lib1 - - + + t40001.cc - - + + t40001_include1.h - - + + lib1.h - + This is a lib1 include dir - + This is a t40001_include1.h include file - + - + - + diff --git a/docs/test_cases/t40002_include.svg b/docs/test_cases/t40002_include.svg index 5d71102b..6a20e4ef 100644 --- a/docs/test_cases/t40002_include.svg +++ b/docs/test_cases/t40002_include.svg @@ -1,6 +1,6 @@ - + @@ -9,58 +9,58 @@ - + src - + lib1 - + lib2 - + include - + lib1 - + lib2 - - + + t40002.cc - - + + lib1.cc - - + + lib2.cc - - + + lib1.h - - + + lib2.h - + - + - + - + - + diff --git a/tests/test_cases.yaml b/tests/test_cases.yaml index 1d67ffc8..81201d17 100644 --- a/tests/test_cases.yaml +++ b/tests/test_cases.yaml @@ -123,6 +123,9 @@ test_cases: - name: t00042 title: Specialization class template diagram filter test description: + - name: t00043 + title: Dependants and dependencies diagram filter test + description: Sequence diagrams: - name: t20001 title: Basic sequence diagram test case