1 // Copyright (C) 2004, Brian Enigma <enigma at netninja.com>
2 // This file is part of MagicCodes.
3 //
4 // MagicCodes is free software; you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 2 of the License, or
7 // (at your option) any later version.
8 //
9 // MagicCodes is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Foobar; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 package org.ninjasoft.magiccodes.plugins;
18
19 import java.text.DecimalFormat;
20
21 /***
22 * Plugin for performing ROT-N on text
23 * @author enigma
24 */
25 public class RotN implements Plugin {
26 private DecimalFormat format = new DecimalFormat("00");
27 public String getName() {
28 return "ROT-N";
29 }
30 public String getDescription() {
31 return "Performs ROT-N text rotations";
32 }
33 public boolean usesKey() {
34 return false;
35 }
36 public boolean isInformational() {
37 return true;
38 }
39 public int[] doAction(int[] in, int[] key) {
40 StringBuffer result = new StringBuffer();
41 for (int rot=0; rot<=26; rot++) {
42 result.append("ROT-");
43 result.append(format.format(rot));
44 result.append(": ");
45 for (int i=0; i<in.length; i++) {
46 int c = in[i];
47 if ((c >= 'a') && (c <= 'z'))
48 c = (c - 'a' + rot) % 26 + 'a';
49 else if ((c >= 'A') && (c <= 'Z'))
50 c = (c - 'A' + rot) % 26 + 'A';
51 else if ((c >= ' ') && (c <= '~'))
52 ;
53 else
54 c = 0;
55 result.append((char) c);
56 }
57 result.append("\n");
58 }
59 int[] resultArray = new int[result.length()];
60 for (int i=0; i<resultArray.length; i++)
61 resultArray[i] = result.charAt(i);
62 return resultArray;
63 }
64
65 }
This page was automatically generated by Maven