/** * True iff the given data is sanitized content of the given kind. */ private static boolean isSanitizedContentOfKind(SoyData data, SanitizedContent.ContentKind kind) { return data instanceof SanitizedContent && kind == ((SanitizedContent) data).getContentKind(); }
/** True iff the given value is sanitized content of the given kind. */ private static boolean isSanitizedContentOfKind( SoyValue value, SanitizedContent.ContentKind kind) { return value instanceof SanitizedContent && kind == ((SanitizedContent) value).getContentKind(); }
/** True iff the given value is sanitized content of the given kind. */ private static boolean isSanitizedContentOfKind( SoyValue value, SanitizedContent.ContentKind kind) { return value instanceof SanitizedContent && kind == ((SanitizedContent) value).getContentKind(); }
private static boolean isSanitizedofKind(SoyValue value, ContentKind kind) { return value instanceof SanitizedContent && ((SanitizedContent) value).getContentKind() == kind; } }
private static boolean isSanitizedofKind(SoyValue value, ContentKind kind) { return value instanceof SanitizedContent && ((SanitizedContent) value).getContentKind() == kind; } }
/** * Converts a Soy {@link SanitizedContent} of kind HTML into a {@link SafeHtml}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#HTML}. */ public SafeHtml toSafeHtml() { Preconditions.checkState( getContentKind() == ContentKind.HTML, "toSafeHtml() only valid for SanitizedContent of kind HTML, is: %s", getContentKind()); return UncheckedConversions.safeHtmlFromStringKnownToSatisfyTypeContract(getContent()); }
/** * Converts a Soy {@link SanitizedContent} of kind HTML into a {@link SafeHtml}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#HTML}. */ public SafeHtml toSafeHtml() { Preconditions.checkState( getContentKind() == ContentKind.HTML, "toSafeHtml() only valid for SanitizedContent of kind HTML, is: %s", getContentKind()); return UncheckedConversions.safeHtmlFromStringKnownToSatisfyTypeContract(getContent()); }
/** * Converts a Soy {@link SanitizedContent} of kind HTML into a {@link SafeHtmlProto}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#HTML}. */ public SafeHtmlProto toSafeHtmlProto() { Preconditions.checkState( getContentKind() == ContentKind.HTML, "toSafeHtmlProto() only valid for SanitizedContent of kind HTML, is: %s", getContentKind()); return SafeHtmls.toProto( UncheckedConversions.safeHtmlFromStringKnownToSatisfyTypeContract(getContent())); }
/** * Converts a Soy {@link SanitizedContent} of kind URI into a {@link SafeUrlProto}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#URI}. */ public SafeUrlProto toSafeUrlProto() { Preconditions.checkState( getContentKind() == ContentKind.URI, "toSafeUrlProto() only valid for SanitizedContent of kind URI, is: %s", getContentKind()); return SafeUrls.toProto( UncheckedConversions.safeUrlFromStringKnownToSatisfyTypeContract(getContent())); }
/** * Converts a Soy {@link SanitizedContent} of kind JS into a {@link SafeScriptProto}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#JS}. */ public SafeScriptProto toSafeScriptProto() { Preconditions.checkState( getContentKind() == ContentKind.JS, "toSafeScriptProto() only valid for SanitizedContent of kind JS, is: %s", getContentKind()); return SafeScripts.toProto( UncheckedConversions.safeScriptFromStringKnownToSatisfyTypeContract(getContent())); }
/** * Converts a Soy {@link SanitizedContent} of kind URI into a {@link SafeUrlProto}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#URI}. */ public SafeUrlProto toSafeUrlProto() { Preconditions.checkState( getContentKind() == ContentKind.URI, "toSafeUrlProto() only valid for SanitizedContent of kind URI, is: %s", getContentKind()); return SafeUrls.toProto( UncheckedConversions.safeUrlFromStringKnownToSatisfyTypeContract(getContent())); }
/** * Converts a Soy {@link SanitizedContent} of kind JS into a {@link SafeScriptProto}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#JS}. */ public SafeScriptProto toSafeScriptProto() { Preconditions.checkState( getContentKind() == ContentKind.JS, "toSafeScriptProto() only valid for SanitizedContent of kind JS, is: %s", getContentKind()); return SafeScripts.toProto( UncheckedConversions.safeScriptFromStringKnownToSatisfyTypeContract(getContent())); }
/** * Converts a Soy {@link SanitizedContent} of kind HTML into a {@link SafeHtmlProto}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#HTML}. */ public SafeHtmlProto toSafeHtmlProto() { Preconditions.checkState( getContentKind() == ContentKind.HTML, "toSafeHtmlProto() only valid for SanitizedContent of kind HTML, is: %s", getContentKind()); return SafeHtmls.toProto( UncheckedConversions.safeHtmlFromStringKnownToSatisfyTypeContract(getContent())); }
/** * Converts a Soy {@link SanitizedContent} of kind TRUSTED_RESOURCE_URI into a {@link * TrustedResourceUrlProto}. * * @throws IllegalStateException if this SanitizedContent's content kind is not {@link * ContentKind#TRUSTED_RESOURCE_URI}. */ public TrustedResourceUrlProto toTrustedResourceUrlProto() { Preconditions.checkState( getContentKind() == ContentKind.TRUSTED_RESOURCE_URI, "toTrustedResourceUrlProto() only valid for SanitizedContent of kind TRUSTED_RESOURCE_URI, " + "is: %s", getContentKind()); return TrustedResourceUrls.toProto( UncheckedConversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract(getContent())); }
public static SoyValue changeNewlineToBr(SoyValue value) { String result = NEWLINE_PATTERN.matcher(coerceToString(value)).replaceAll("<br>"); // Make sure to transmit the known direction, if any, to any downstream directive that may need // it, e.g. BidiSpanWrapDirective. Since a known direction is carried only by SanitizedContent, // and the transformation we make is only valid in HTML, we only transmit the direction when we // get HTML SanitizedContent. // TODO(user): Consider always returning HTML SanitizedContent. if (value instanceof SanitizedContent) { SanitizedContent sanitizedContent = (SanitizedContent) value; if (sanitizedContent.getContentKind() == ContentKind.HTML) { return UnsafeSanitizedContentOrdainer.ordainAsSafe( result, ContentKind.HTML, sanitizedContent.getContentDirection()); } } return StringData.forValue(result); }
@Override public SoyData apply(SoyData value, List<SoyData> args) { if (value instanceof SanitizedContent) { SanitizedContent sanitizedContent = (SanitizedContent) value; if (sanitizedContent.getContentKind() == SanitizedContent.ContentKind.HTML) { return value; } } return SoyData.createFromExistingData( EscapingConventions.EscapeHtml.INSTANCE.escape(value.toString())); }
@Override public void render(LoggingAdvisingAppendable appendable) throws IOException { appendable .setSanitizedContentKind(getContentKind()) .setSanitizedContentDirectionality(getContentDirection()) .append(content); }
@Override public void close() throws IOException { if (!isInHtml()) { StringBuilder buffer = (StringBuilder) activeAppendable; if (buffer.length() > 0) { SanitizedContent content = cleanHtml(buffer.toString(), getSanitizedContentDirectionality(), optionalSafeTags); delegate .setSanitizedContentKind(content.getContentKind()) .setSanitizedContentDirectionality(content.getContentDirection()) .append(content.getContent()); buffer.setLength(0); } } } }
public static String bidiMarkAfter(BidiGlobalDir bidiGlobalDir, SoyValue value, boolean isHtml) { Dir valueDir = null; if (value instanceof SanitizedContent) { SanitizedContent sanitizedContent = (SanitizedContent) value; valueDir = sanitizedContent.getContentDirection(); isHtml = isHtml || sanitizedContent.getContentKind() == ContentKind.HTML; } String markAfterKnownDir = BidiFormatter.getInstance(bidiGlobalDir.toDir()) .markAfter(valueDir, value.coerceToString(), isHtml); return markAfterKnownDir; }
public static String bidiMarkAfter(BidiGlobalDir bidiGlobalDir, SoyValue value, boolean isHtml) { Dir valueDir = null; if (value instanceof SanitizedContent) { SanitizedContent sanitizedContent = (SanitizedContent) value; valueDir = sanitizedContent.getContentDirection(); isHtml = isHtml || sanitizedContent.getContentKind() == ContentKind.HTML; } String markAfterKnownDir = BidiFormatter.getInstance(bidiGlobalDir.toDir()) .markAfter(valueDir, value.coerceToString(), isHtml); return markAfterKnownDir; }