package com.psddev.cms.db; import java.util.UUID; import org.jsoup.nodes.Element; import com.psddev.dari.db.ReferentialText; import com.psddev.dari.db.Query; import com.psddev.dari.db.State; import com.psddev.dari.util.ObjectUtils; public class RichTextCleaner implements ReferentialText.Cleaner { @Override public void before(Element body) { } @Override public void after(Element body) { for (Element a : body.getElementsByTag("a")) { if (ObjectUtils.equals(a.attr("href"), a.attr("data-cms-href"))) { UUID id = ObjectUtils.to(UUID.class, a.attr("data-cms-id")); if (id != null) { Object item = Query.fromAll().where("_id = ?", id).first(); if (item != null) { String href = item instanceof Content ? ((Content) item).getPermalink() : State.getInstance(item).as(Directory.ObjectModification.class).getPermalink(); if (href != null) { a.attr("href", href); } } } } a.removeAttr("data-cms-href"); a.removeAttr("data-cms-id"); } } }