| @startuml
namespace Jawira.CaseConverter.Glue  {
	class SentenceCase << class >> {
		+glue()
	}
	abstract SpaceGluer << abstract >> {
		+DELIMITER
	}
	abstract Gluer << abstract >> {
		+ENCODING
		..
		#words
		#lowerCase
		#upperCase
		#titleCase
		--
		+__construct()
		#setSimpleCaseMappingConstants()
		+<i>glue</i>()
		#glueUsingRules()
		#changeWordsCase()
		#changeFirstWordCase()
	}
	class LowerCase << class >> {
		+glue()
	}
	class DotNotation << class >> {
		+DELIMITER
		--
		+glue()
	}
	abstract UnderscoreGluer << abstract >> {
		+DELIMITER
	}
	class TrainCase << class >> {
		+glue()
	}
	abstract DashGluer << abstract >> {
		+DELIMITER
	}
	abstract UppercaseGluer << abstract >> {
		+DELIMITER
	}
	class AdaCase << class >> {
		+glue()
	}
	class UpperCase << class >> {
		+glue()
	}
	class TitleCase << class >> {
		+glue()
	}
	class MacroCase << class >> {
		+glue()
	}
	class SnakeCase << class >> {
		+glue()
	}
	class CamelCase << class >> {
		+glue()
	}
	class PascalCase << class >> {
		+glue()
	}
	class CobolCase << class >> {
		+glue()
	}
	class KebabCase << class >> {
		+glue()
	}
}
Jawira.CaseConverter.Glue.SpaceGluer --|> Jawira.CaseConverter.Glue.Gluer
Jawira.CaseConverter.Glue.SentenceCase --|> Jawira.CaseConverter.Glue.SpaceGluer
Jawira.CaseConverter.Glue.LowerCase --|> Jawira.CaseConverter.Glue.SpaceGluer
Jawira.CaseConverter.Glue.DotNotation --|> Jawira.CaseConverter.Glue.Gluer
Jawira.CaseConverter.Glue.UnderscoreGluer --|> Jawira.CaseConverter.Glue.Gluer
Jawira.CaseConverter.Glue.DashGluer --|> Jawira.CaseConverter.Glue.Gluer
Jawira.CaseConverter.Glue.TrainCase --|> Jawira.CaseConverter.Glue.DashGluer
Jawira.CaseConverter.Glue.UppercaseGluer --|> Jawira.CaseConverter.Glue.Gluer
Jawira.CaseConverter.Glue.AdaCase --|> Jawira.CaseConverter.Glue.UnderscoreGluer
Jawira.CaseConverter.Glue.UpperCase --|> Jawira.CaseConverter.Glue.SpaceGluer
Jawira.CaseConverter.Glue.TitleCase --|> Jawira.CaseConverter.Glue.SpaceGluer
Jawira.CaseConverter.Glue.MacroCase --|> Jawira.CaseConverter.Glue.UnderscoreGluer
Jawira.CaseConverter.Glue.SnakeCase --|> Jawira.CaseConverter.Glue.UnderscoreGluer
Jawira.CaseConverter.Glue.CamelCase --|> Jawira.CaseConverter.Glue.UppercaseGluer
Jawira.CaseConverter.Glue.PascalCase --|> Jawira.CaseConverter.Glue.UppercaseGluer
Jawira.CaseConverter.Glue.CobolCase --|> Jawira.CaseConverter.Glue.DashGluer
Jawira.CaseConverter.Glue.KebabCase --|> Jawira.CaseConverter.Glue.DashGluer
@enduml
 |