package xapi.model.content;
import xapi.model.X_Model;
import xapi.model.api.KeyBuilder;
import xapi.model.api.ModelBuilder;
import xapi.model.user.ModelUser;
import xapi.util.api.ProvidesValue;
import java.util.function.Supplier;
/**
* Created by james on 25/10/15.
*/
public interface ModelReference extends ModelText, HasAuthor {
String MODEL_REFERENCE_TYPE = "reference";
ProvidesValue<KeyBuilder> CONTENT_KEY_BUILDER = KeyBuilder.forType(MODEL_REFERENCE_TYPE);
ProvidesValue<ModelBuilder<ModelContent>> CONTENT_MODEL_BUILDER = new ProvidesValue<ModelBuilder<ModelContent>>() {
@Override
public ModelBuilder<ModelContent> get() {
return ModelBuilder.build(CONTENT_KEY_BUILDER.get(), new Supplier<ModelContent>() {
@Override
public ModelContent get() {
return X_Model.create(ModelContent.class);
}
})
.withProperty("related", new ModelContent[0])
.withProperty("children", new ModelContent[0])
;
}
};
String getReference();
ModelReference setReference(String reference);
String getQuoteText();
ModelReference setQuoteText(String quoteText);
ModelUser getQuoted();
ModelReference setQuoted(ModelUser quoted);
}