001 /*
002 * Sonar, open source software quality management tool.
003 * Copyright (C) 2008-2012 SonarSource
004 * mailto:contact AT sonarsource DOT com
005 *
006 * Sonar is free software; you can redistribute it and/or
007 * modify it under the terms of the GNU Lesser General Public
008 * License as published by the Free Software Foundation; either
009 * version 3 of the License, or (at your option) any later version.
010 *
011 * Sonar is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014 * Lesser General Public License for more details.
015 *
016 * You should have received a copy of the GNU Lesser General Public
017 * License along with Sonar; if not, write to the Free Software
018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
019 */
020 package org.sonar.colorizer;
021
022 public class HtmlOptions {
023 public static final HtmlOptions DEFAULT = new HtmlOptions(true, null, true);
024 public static final OnlySyntaxHtmlOptions ONLY_SYNTAX = new OnlySyntaxHtmlOptions();
025
026 private boolean generateTable = true;
027 private boolean generateHtmlHeader = true;
028 private String tableId = null;
029 private int firstLineId = 1;
030
031 public HtmlOptions() {
032 }
033
034 public HtmlOptions(boolean generateTable, String tableId, boolean generateHtmlHeader) {
035 this.generateTable = generateTable;
036 this.generateHtmlHeader = generateHtmlHeader;
037 this.tableId = tableId;
038 }
039
040 public boolean isGenerateTable() {
041 return generateTable;
042 }
043
044 public HtmlOptions setGenerateTable(boolean b) {
045 this.generateTable = b;
046 return this;
047 }
048
049 /**
050 * Used only if isGenerateTable() is true
051 */
052 public boolean isGenerateHtmlHeader() {
053 return generateHtmlHeader;
054 }
055
056 /**
057 * Defines if the HTML header, including CSS, must be generated.
058 */
059 public HtmlOptions setGenerateHtmlHeader(boolean b) {
060 this.generateHtmlHeader = b;
061 return this;
062 }
063
064 public String getTableId() {
065 return tableId;
066 }
067
068 /**
069 * Used only if isGenerateTable() is true. This field is optional.
070 */
071 public HtmlOptions setTableId(String id) {
072 this.tableId = id;
073 return this;
074 }
075
076 /**
077 * Used only if isGenerateTable() is true. Default value is 1.
078 */
079 public int getFirstLineId() {
080 return firstLineId;
081 }
082
083 public HtmlOptions setFirstLineId(int i) {
084 this.firstLineId = i;
085 return this;
086 }
087 }
088
089 class OnlySyntaxHtmlOptions extends HtmlOptions {
090
091 @Override
092 public boolean isGenerateTable() {
093 return false;
094 }
095
096 @Override
097 public boolean isGenerateHtmlHeader() {
098 return false;
099 }
100
101 @Override
102 public String getTableId() {
103 return null;
104 }
105
106 @Override
107 public HtmlOptions setGenerateHtmlHeader(boolean b) {
108 throw new IllegalStateException();
109 }
110
111 @Override
112 public HtmlOptions setGenerateTable(boolean b) {
113 throw new IllegalStateException();
114 }
115
116 @Override
117 public HtmlOptions setTableId(String id) {
118 throw new IllegalStateException();
119 }
120 }