package features.domain.builders;
import features.domain.ManyToManyABar;
import features.domain.ManyToManyAFoo;
import features.domain.ManyToManyAFooToBar;
import java.util.List;
import joist.domain.builders.AbstractBuilder;
import joist.domain.builders.DefaultsContext;
import joist.domain.uow.UoW;
@SuppressWarnings("all")
public abstract class ManyToManyAFooToBarBuilderCodegen extends AbstractBuilder<ManyToManyAFooToBar> {
public ManyToManyAFooToBarBuilderCodegen(ManyToManyAFooToBar instance) {
super(instance);
}
@Override
public ManyToManyAFooToBarBuilder defaults() {
return (ManyToManyAFooToBarBuilder) super.defaults();
}
@Override
protected void defaults(DefaultsContext c) {
super.defaults(c);
c.rememberIfSet(manyToManyABar());
c.rememberIfSet(manyToManyAFoo());
if (manyToManyABar() == null) {
manyToManyABar(c.getIfAvailable(ManyToManyABar.class));
if (manyToManyABar() == null) {
manyToManyABar(defaultManyToManyABar());
c.rememberIfSet(manyToManyABar());
}
}
if (manyToManyAFoo() == null) {
manyToManyAFoo(c.getIfAvailable(ManyToManyAFoo.class));
if (manyToManyAFoo() == null) {
manyToManyAFoo(defaultManyToManyAFoo());
c.rememberIfSet(manyToManyAFoo());
}
}
}
public Long id() {
if (UoW.isOpen() && get().getId() == null) {
UoW.flush();
}
return get().getId();
}
public ManyToManyAFooToBarBuilder id(Long id) {
get().setId(id);
return (ManyToManyAFooToBarBuilder) this;
}
public ManyToManyABarBuilder manyToManyABar() {
if (get().getManyToManyABar() == null) {
return null;
}
return Builders.existing(get().getManyToManyABar());
}
public ManyToManyAFooToBarBuilder manyToManyABar(ManyToManyABar manyToManyABar) {
get().setManyToManyABar(manyToManyABar);
return (ManyToManyAFooToBarBuilder) this;
}
public ManyToManyAFooToBarBuilder with(ManyToManyABar manyToManyABar) {
return manyToManyABar(manyToManyABar);
}
public ManyToManyAFooToBarBuilder manyToManyABar(ManyToManyABarBuilder manyToManyABar) {
return manyToManyABar(manyToManyABar == null ? null : manyToManyABar.get());
}
public ManyToManyAFooToBarBuilder with(ManyToManyABarBuilder manyToManyABar) {
return manyToManyABar(manyToManyABar);
}
protected ManyToManyABarBuilder defaultManyToManyABar() {
return Builders.aManyToManyABar().defaults();
}
public ManyToManyAFooBuilder manyToManyAFoo() {
if (get().getManyToManyAFoo() == null) {
return null;
}
return Builders.existing(get().getManyToManyAFoo());
}
public ManyToManyAFooToBarBuilder manyToManyAFoo(ManyToManyAFoo manyToManyAFoo) {
get().setManyToManyAFoo(manyToManyAFoo);
return (ManyToManyAFooToBarBuilder) this;
}
public ManyToManyAFooToBarBuilder with(ManyToManyAFoo manyToManyAFoo) {
return manyToManyAFoo(manyToManyAFoo);
}
public ManyToManyAFooToBarBuilder manyToManyAFoo(ManyToManyAFooBuilder manyToManyAFoo) {
return manyToManyAFoo(manyToManyAFoo == null ? null : manyToManyAFoo.get());
}
public ManyToManyAFooToBarBuilder with(ManyToManyAFooBuilder manyToManyAFoo) {
return manyToManyAFoo(manyToManyAFoo);
}
protected ManyToManyAFooBuilder defaultManyToManyAFoo() {
return Builders.aManyToManyAFoo().defaults();
}
public ManyToManyAFooToBar get() {
return (features.domain.ManyToManyAFooToBar) super.get();
}
@Override
public ManyToManyAFooToBarBuilder ensureSaved() {
doEnsureSaved();
return (ManyToManyAFooToBarBuilder) this;
}
@Override
public ManyToManyAFooToBarBuilder use(AbstractBuilder<?> builder) {
return (ManyToManyAFooToBarBuilder) super.use(builder);
}
@Override
public void delete() {
ManyToManyAFooToBar.queries.delete(get());
}
public static void deleteAll() {
List<Long> ids = ManyToManyAFooToBar.queries.findAllIds();
for (Long id : ids) {
ManyToManyAFooToBar.queries.delete(ManyToManyAFooToBar.queries.find(id));
}
}
}