package ecologylab.bigsemantics.metadata.builtins; import ecologylab.bigsemantics.metadata.builtins.declarations.TextClippingDeclaration; import ecologylab.bigsemantics.metadata.scalar.MetadataString; import ecologylab.bigsemantics.metametadata.MetaMetadataCompositeField; import ecologylab.bigsemantics.model.text.SemanticTextChunk; import ecologylab.serialization.annotations.simpl_inherit; /** * Text clippings from documents. **/ @simpl_inherit public class TextClipping extends TextClippingDeclaration implements TextualMetadata { // @simpl_scalar // @mm_name("text") // private MetadataString text; public TextClipping() { super(); } public TextClipping(MetaMetadataCompositeField metaMetadata) { super(metaMetadata); } public TextClipping(String context) { super(); setContext(context); } public TextClipping(String context, boolean isSemanticText) { this(context); SemanticTextChunk chunk = new SemanticTextChunk(context); SemanticTextChunk trimmedChunk = (SemanticTextChunk) chunk.trimPhatChunk(isSemanticText); setText(trimmedChunk.string()); chunk.recycle(); trimmedChunk.recycle(); } @Override public void setText(String newText) { HtmlText media = getMedia(); if (media != null) { media.setText(newText); } } @Override public String getText() { HtmlText media = getMedia(); if (media != null) { return media.getText(); } return ""; } /** * The heavy weight setter method for field text **/ public void hwSetText(String text) { HtmlText media = getMedia(); if (media != null) { media.text().setValue(text); rebuildCompositeTermVector(); } } public void setText(CharSequence textSequence) { HtmlText media = getMedia(); if (media != null) { media.setTextMetadata(new MetadataString(textSequence.toString())); } } /** * Heavy Weight Direct setter method for text **/ public void hwSetTextMetadata(MetadataString text) { HtmlText media = getMedia(); if (media != null) { if (getText() != null && hasTermVector()) termVector().remove(media.getTextMetadata().termVector()); media.setTextMetadata(text); rebuildCompositeTermVector(); } } }