--- /dev/null
+/*
+ * Verrari - TemplateEngine
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Changhyun Lee <changhyun1.lee@samsung.com>
+ * Hyeongseok Heo <hyeongseok.heo@samsung.com>
+ * Kangho Kim <kh5325.kim@samsung.com>
+ * BonYong Lee <bonyong.lee@samsung.com>
+ *
+ * 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.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+package org.tizen.common.verrari.template;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * TemplateTransfer
+ *
+ * @author ChangHyun Lee{@literal <changhyun1.lee@samsung.com>} (S-Core)
+ */
+public class TemplateTransformer {
+
+ public static final String REGEX_COMMENT = "(\\$\\#).*"; //$NON-NLS-1$ // $# value : line comment
+ public static final String REGEX_TRANSFORM = "(\\$\\$\\{)(.*?)(\\})"; //$NON-NLS-1$ // $${value} : transform
+
+ private String transformNotation = "$"; //$NON-NLS-1$
+
+ public TemplateTransformer() {
+ }
+
+ public String templateTransfer(String contents, String expression) {
+ // delete comments and change transform expression
+ return changeTransformExpression(deleteComments(contents), expression);
+ }
+
+ protected String deleteComments(String contents) {
+ Pattern pattern = Pattern.compile(REGEX_COMMENT);
+ Matcher matcher = pattern.matcher(contents);
+ return matcher.replaceAll(""); //$NON-NLS-1$
+ }
+
+ protected String changeTransformExpression(String contents, String expression) {
+ Pattern pattern = Pattern.compile(REGEX_TRANSFORM);
+ Matcher matcher = pattern.matcher(contents);
+ String genContents = contents;
+ while (matcher.find()) {
+ genContents = genContents.replace(matcher.group(), matcher.group().replace("$$", expression)); //$NON-NLS-1$
+ }
+ return genContents;
+ }
+
+ public void setTransformNotation(String transformNotation) {
+ this.transformNotation = transformNotation;
+ }
+
+ public String getTransformNotation() {
+ return transformNotation;
+ }
+
+}
--- /dev/null
+/*
+ * Verrari - TemplateEngine
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Changhyun Lee <changhyun1.lee@samsung.com>
+ * Hyeongseok Heo <hyeongseok.heo@samsung.com>
+ * Kangho Kim <kh5325.kim@samsung.com>
+ * BonYong Lee <bonyong.lee@samsung.com>
+ *
+ * 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.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+package org.tizen.common.verrari.template;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * TemplateTransferTest.
+ *
+ * Test case for {@link TemplateTransformer}
+ *
+ * @author Changhyun Lee{@literal <changhyun1.lee@samsung.com>} (S-Core)
+ *
+ * @see TemplateTransformer
+ *
+ */
+public class TemplateTransformerTest {
+
+ public static final String source =
+ "This is test case. \n" +
+ "$# this line is comment. \n" +
+ "$# this line is comment. \n" +
+ "$${test1} $${test2} $${test3} \n" +
+ "$${test4} $${test5} $# $${test6} \n";
+
+ /**
+ * Test {@link TemplateTransformer#setTransformNotation()}
+ *
+ * @throws Exception in case of failure in test
+ *
+ * @see TemplateTransformer#setTransformNotation()
+ */
+ @Test
+ public void test_setTransformNotation() throws Exception {
+ TemplateTransformer transfer = new TemplateTransformer();
+ String expression = "@#$";
+ transfer.setTransformNotation(expression);
+ assertEquals(expression, transfer.getTransformNotation());
+ }
+
+ /**
+ * Test {@link TemplateTransformer#getTransformNotation()}
+ *
+ * @throws Exception in case of failure in test
+ *
+ * @see TemplateTransformer#getTransformNotation()
+ */
+ @Test
+ public void test_getTransformNotation() throws Exception {
+ TemplateTransformer transfer = new TemplateTransformer();
+ assertEquals("$", transfer.getTransformNotation());
+ }
+
+ /**
+ * Test {@link TemplateTransformer#templateTransfer()}
+ *
+ * @throws Exception in case of failure in test
+ *
+ * @see TemplateTransformer#templateTransfer()
+ */
+ @Test
+ public void test_templateTransfer() throws Exception {
+ String genSource = new TemplateTransformer().templateTransfer(source, "$");
+ assertFalse(genSource.contains("$$"));
+ assertFalse(genSource.contains("$#"));
+ assertFalse(genSource.contains("comment"));
+ assertTrue(genSource.contains("${test1}"));
+ assertTrue(genSource.contains("${test2}"));
+ assertTrue(genSource.contains("${test3}"));
+ assertTrue(genSource.contains("${test4}"));
+ assertTrue(genSource.contains("${test5}"));
+ assertFalse(genSource.contains("${test6}"));
+ }
+
+ /**
+ * Test {@link TemplateTransformer#deleteComments()}
+ *
+ * @throws Exception in case of failure in test
+ *
+ * @see TemplateTransformer#deleteComments()
+ */
+ @Test
+ public void test_deleteComments() throws Exception {
+ String genSource = new TemplateTransformer().deleteComments(source);
+ assertFalse(genSource.contains("$#"));
+ assertFalse(genSource.contains("comment"));
+ assertFalse(genSource.contains("$${test6}"));
+ assertTrue(genSource.contains("$$"));
+ assertTrue(genSource.contains("$${test1}"));
+ assertTrue(genSource.contains("$${test2}"));
+ assertTrue(genSource.contains("$${test3}"));
+ assertTrue(genSource.contains("$${test4}"));
+ assertTrue(genSource.contains("$${test5}"));
+ }
+
+ /**
+ * Test {@link TemplateTransformer#changeTransformExpression()}
+ *
+ * @throws Exception in case of failure in test
+ *
+ * @see TemplateTransformer#changeTransformExpression()
+ */
+ @Test
+ public void test_changeTransformExpression() throws Exception {
+ String genSource = new TemplateTransformer().changeTransformExpression(source, "$");
+ assertTrue(genSource.contains("$#"));
+ assertTrue(genSource.contains("comment"));
+ assertTrue(genSource.contains("${test6}"));
+ assertFalse(genSource.contains("$$"));
+ assertTrue(genSource.contains("${test1}"));
+ assertTrue(genSource.contains("${test2}"));
+ assertTrue(genSource.contains("${test3}"));
+ assertTrue(genSource.contains("${test4}"));
+ assertTrue(genSource.contains("${test5}"));
+ }
+
+}