/* * Copyright 2000-2009 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.maddyhome.idea.copyright.pattern; public class EntityUtil { public static String encode(String text) { StringBuffer res = new StringBuffer(text.length()); for (int i = 0; i < text.length(); i++) { char ch = text.charAt(i); if (ch == '&') { res.append("&"); } else if (ch == '$') { res.append("$"); } else { res.append(ch); } } return res.toString(); } public static String decode(String text) { StringBuffer res = new StringBuffer(text.length()); for (int i = 0; i < text.length(); i++) { char ch = text.charAt(i); switch (ch) { case '&': int semi = text.indexOf(';', i); if (semi > i) { char newch = ch; String entity = text.substring(i, semi + 1); if (entity.equals("$")) { newch = '$'; } else if (entity.equals("&")) { newch = '&'; i = semi; } if (newch != ch) { ch = newch; i = semi; } } res.append(ch); break; default: res.append(ch); } } return res.toString(); } private EntityUtil() { } }