// Copyright 2019 Google LLC
//
// 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
//
//     https://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.google.sps.data;

import java.util.ArrayList;
import java.util.List;

public final class InternalTags {
  private final List<String> INTERNAL_TAGS = new ArrayList<String>();
  private final String DEFAULT_TAG = "#general";
  private final void setTags() {
    INTERNAL_TAGS.add(DEFAULT_TAG);
    INTERNAL_TAGS.add("#business");
    INTERNAL_TAGS.add("#education");
    INTERNAL_TAGS.add("#games");
    INTERNAL_TAGS.add("#music");
    INTERNAL_TAGS.add("#wellbeing");
  }

  public final boolean tagIsSupported(BlogMessage message) {
    for (String internalTag : INTERNAL_TAGS) {
      if (message.getTag().equals(internalTag)){
        return true;
      }
    }
    return false;
  }

  // For check in DataServlet
  public String defaultTag(){
    return DEFAULT_TAG;
  }
  
  public InternalTags() {
    setTags();
  }

  // TODO:
  //    Create hashMap for Internal tags for search in constant time.

}
@@ -708,21 +708,22 @@
 private 
-final
+static
  List%3CSt
@@ -779,21 +779,22 @@
 private 
-final
+static
  String 
@@ -819,16 +819,19 @@
 neral%22;%0A
+  %0A
   privat
@@ -832,21 +832,22 @@
 private 
-final
+static
  void se
@@ -1082,21 +1082,22 @@
  public 
-final
+static
  boolean
@@ -1131,24 +1131,83 @@
  message) %7B%0A
+    if (INTERNAL_TAGS.isEmpty()) %7B%0A      setTags();%0A    %7D%0A%0A
     for (Str
@@ -1387,16 +1387,23 @@
  public 
+static 
 String d
@@ -1446,56 +1446,8 @@
 %0A  %7D
-%0A  %0A  public InternalTags() %7B%0A    setTags();%0A  %7D
 %0A%0A  

use static members for access without InternalTag object