content: /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You 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.
   */
  package org.apache.camel.k;
  
  import java.util.List;
  
  import org.apache.camel.spi.Configurer;
  import org.apache.camel.spi.IdAware;
  
  @Configurer
  public class SourceDefinition implements IdAware {
      private String id;
      private String name;
      private String language;
      private String loader;
      private List<String> interceptors;
      // Default as source type
      private SourceType type = SourceType.source;
      private List<String> propertyNames;
      private String location;
      private byte[] content;
      private boolean compressed;
  
      @Override
      public String getId() {
          return id;
      }
  
      /**
       * Sets the id
       */
      @Override
      public void setId(String id) {
          this.id = id;
      }
  
      public String getName() {
          return name;
      }
  
      /**
       * The name of the source.
       */
      public void setName(String name) {
          this.name = name;
      }
  
      public String getLanguage() {
          return language;
      }
  
      /**
       * The language use to define the source.
       */
      public void setLanguage(String language) {
          this.language = language;
      }
  
      public String getLoader() {
          return loader;
      }
  
      /**
       * The {@link SourceLoader} that should be used to load the content of the source.
       */
      public void setLoader(String loader) {
          this.loader = loader;
      }
  
      public List<String> getInterceptors() {
          return interceptors;
      }
  
      /**
       * The {@link org.apache.camel.k.SourceLoader.Interceptor} that should be applied.
       */
      public void setInterceptors(List<String> interceptors) {
          this.interceptors = interceptors;
      }
  
      public SourceType getType() {
          return type;
      }
  
      /**
       * The {@link SourceType} of the source.
       */
      public void setType(SourceType type) {
          this.type = type;
      }
  
      public List<String> getPropertyNames() {
          return propertyNames;
      }
  
      /**
       * The list of properties names the source requires (used only for templates).
       */
      public void setPropertyNames(List<String> propertyNames) {
          this.propertyNames = propertyNames;
      }
  
      public String getLocation() {
          return location;
      }
  
      /**
       * The location of the source.
       */
      public void setLocation(String location) {
          this.location = location;
      }
  
      public byte[] getContent() {
          return content;
      }
  
      /**
       * The content of the source.
       */
      public void setContent(byte[] content) {
          this.content = content;
      }
  
      public boolean isCompressed() {
          return compressed;
      }
  
      /**
       * If the content of the source is compressed.
       */
      public void setCompressed(boolean compressed) {
          this.compressed = compressed;
      }
  
      @Override
      public String toString() {
          String answer = "";
  
          if (name != null) {
              answer += "name='" + name + "', ";
          }
          if (language != null) {
              answer += "language='" + language + "', ";
          }
          if (loader != null) {
              answer += "loader='" + loader + "', ";
          }
          if (interceptors != null) {
              answer += "interceptors='" + interceptors + "', ";
          }
          if (type != null) {
              answer += "type='" + type + "', ";
          }
          if (propertyNames != null) {
              answer += "propertyNames='" + propertyNames + "', ";
          }
          if (location != null) {
              answer += "location='" + location + "', ";
          }
          if (compressed) {
              answer += "compressed='true', ";
          }
          if (content != null) {
              answer += "<...>";
          }
  
          return "SourceDefinition{" + answer + '}';
      }
  }
  