use crate::model::base::AssociationAttributes;
use crate::model::basic_types::NilReason;
use crate::model::xlink::{ActuateType, HRef, ShowType};
pub trait HasAssociationAttributes {
fn association(&self) -> &AssociationAttributes;
fn href(&self) -> Option<&HRef> {
self.association().href.as_ref()
}
fn local_id(&self) -> Option<&str> {
self.association().local_id()
}
fn nil_reason(&self) -> Option<&NilReason> {
self.association().nil_reason.as_ref()
}
fn title(&self) -> Option<&str> {
self.association().title.as_deref()
}
fn role(&self) -> Option<&str> {
self.association().role.as_deref()
}
fn arcrole(&self) -> Option<&str> {
self.association().arcrole.as_deref()
}
fn show(&self) -> Option<&ShowType> {
self.association().show.as_ref()
}
fn actuate(&self) -> Option<&ActuateType> {
self.association().actuate.as_ref()
}
}
pub trait HasAssociationAttributesMut: HasAssociationAttributes {
fn association_mut(&mut self) -> &mut AssociationAttributes;
fn set_href(&mut self, href: HRef) {
self.association_mut().href = Some(href);
}
fn set_href_opt(&mut self, href: Option<HRef>) {
self.association_mut().href = href;
}
fn clear_href(&mut self) {
self.association_mut().href = None;
}
fn set_nil_reason(&mut self, nil_reason: NilReason) {
self.association_mut().nil_reason = Some(nil_reason);
}
fn set_nil_reason_opt(&mut self, nil_reason: Option<NilReason>) {
self.association_mut().nil_reason = nil_reason;
}
fn clear_nil_reason(&mut self) {
self.association_mut().nil_reason = None;
}
fn set_title(&mut self, title: impl Into<String>) {
self.association_mut().title = Some(title.into());
}
fn set_title_opt(&mut self, title: Option<String>) {
self.association_mut().title = title;
}
fn clear_title(&mut self) {
self.association_mut().title = None;
}
fn set_role(&mut self, role: impl Into<String>) {
self.association_mut().role = Some(role.into());
}
fn set_role_opt(&mut self, role: Option<String>) {
self.association_mut().role = role;
}
fn clear_role(&mut self) {
self.association_mut().role = None;
}
fn set_arcrole(&mut self, arcrole: impl Into<String>) {
self.association_mut().arcrole = Some(arcrole.into());
}
fn set_arcrole_opt(&mut self, arcrole: Option<String>) {
self.association_mut().arcrole = arcrole;
}
fn clear_arcrole(&mut self) {
self.association_mut().arcrole = None;
}
fn set_show(&mut self, show: ShowType) {
self.association_mut().show = Some(show);
}
fn set_show_opt(&mut self, show: Option<ShowType>) {
self.association_mut().show = show;
}
fn clear_show(&mut self) {
self.association_mut().show = None;
}
fn set_actuate(&mut self, actuate: ActuateType) {
self.association_mut().actuate = Some(actuate);
}
fn set_actuate_opt(&mut self, actuate: Option<ActuateType>) {
self.association_mut().actuate = actuate;
}
fn clear_actuate(&mut self) {
self.association_mut().actuate = None;
}
}