KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > snipsnap > snip > name > WeblogNameFormatter


1 /*
2  * This file is part of "SnipSnap Wiki/Weblog".
3  *
4  * Copyright (c) 2004 Fraunhofer Gesellschaft
5  * All Rights Reserved.
6  *
7  * Please visit http://snipsnap.org/ for updates and contact.
8  *
9  * --LICENSE NOTICE--
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  * --LICENSE NOTICE--
24  */

25 package org.snipsnap.snip.name;
26
27
28 /**
29  * Formatter that capitalizes the name of weblogs and comments of weblogse
30  *
31  * @author stephan
32  * @version $Id: WeblogNameFormatter.java 1676 2004-06-24 12:06:46Z leo $
33  */

34
35 public class WeblogNameFormatter implements NameFormatter {
36   // Null Object Pattern
37
private NameFormatter parent = new NoneFormatter();
38
39   public void setParent(NameFormatter parent) {
40     this.parent = parent;
41   }
42
43   public String JavaDoc format(String JavaDoc name) {
44     String JavaDoc parentName = parent.format(name);
45     if (parentName.matches(".*/[0-9]{4}-[0-9][0-9]-[0-9][0-9]/[0-9]+")) {
46       int lastSlashIndex = parentName.lastIndexOf('/');
47       String JavaDoc date = parentName.substring(parentName.lastIndexOf("/", lastSlashIndex - 1) + 1, lastSlashIndex);
48       return date + " #" + parentName.substring(lastSlashIndex + 1);
49     }
50     return parentName;
51   }
52 }
53
Popular Tags