blob: 47b56c5684d21880e35320ccb96a0a078d646f5c [file] [log] [blame]
/*
* 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.oodt.cas.crawl.config;
//JDK imports
import java.net.MalformedURLException;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
//OODT imports
import org.apache.oodt.commons.spring.SpringSetIdInjectionType;
import org.apache.oodt.cas.filemgr.metadata.CoreMetKeys;
import org.apache.oodt.cas.metadata.Metadata;
//Spring imports
import org.springframework.beans.factory.annotation.Required;
import org.springframework.context.ApplicationContext;
/**
* Turns a {@link ProductCrawler} into a Spring-configurable entity.
*
* @author bfoster (Brian Foster)
*/
public abstract class ProductCrawlerBean implements
SpringSetIdInjectionType, CoreMetKeys {
private HashSet<String> requiredMetadata;
private List<String> actionIds;
private String filemgrUrl;
private String clientTransferer;
private boolean noRecur, crawlForDirs, skipIngest;
private int daemonWait, daemonPort;
private String productPath;
private ApplicationContext applicationContext;
private String id;
private Metadata globalMetadata;
public ProductCrawlerBean() {
this.actionIds = new LinkedList<String>();
this.requiredMetadata = new HashSet<String>();
this.requiredMetadata.add(PRODUCT_TYPE);
this.requiredMetadata.add(FILENAME);
this.requiredMetadata.add(FILE_LOCATION);
this.noRecur = false;
this.crawlForDirs = false;
this.skipIngest = false;
this.daemonPort = -1;
this.daemonWait = -1;
this.globalMetadata = new Metadata();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
public ApplicationContext getApplicationContext() {
return this.applicationContext;
}
public void setActionIds(List<String> actionIds) {
this.actionIds = actionIds;
}
public List<String> getActionIds() {
return this.actionIds;
}
public void setRequiredMetadata(List<String> requiredMetadata) {
this.requiredMetadata.addAll(requiredMetadata);
}
@Required
public void setFilemgrUrl(String filemgrUrl) throws MalformedURLException {
this.filemgrUrl = filemgrUrl;
}
public String getFilemgrUrl() {
return this.filemgrUrl;
}
public List<String> getRequiredMetadata() {
return new LinkedList<String>(this.requiredMetadata);
}
@Required
public void setClientTransferer(String clientTransferer) {
this.clientTransferer = clientTransferer;
}
public String getClientTransferer() {
return this.clientTransferer;
}
public void setNoRecur(boolean noRecur) {
this.noRecur = noRecur;
}
public boolean isNoRecur() {
return this.noRecur;
}
public void setCrawlForDirs(boolean crawlForDirs) {
this.crawlForDirs = crawlForDirs;
}
public boolean isCrawlForDirs() {
return this.crawlForDirs;
}
public void setSkipIngest(boolean skipIngest) {
this.skipIngest = skipIngest;
}
public boolean isSkipIngest() {
return this.skipIngest;
}
public void setDaemonWait(int daemonWait) {
this.daemonWait = daemonWait;
}
public int getDaemonWait() {
return this.daemonWait;
}
public void setDaemonPort(int daemonPort) {
this.daemonPort = daemonPort;
}
public int getDaemonPort() {
return this.daemonPort;
}
@Required
public void setProductPath(String productPath) {
this.productPath = productPath;
}
public String getProductPath() {
return this.productPath;
}
public Metadata getGlobalMetadata() {
return globalMetadata;
}
public void setGlobalMetadata(Metadata globalMetadata) {
this.globalMetadata.addMetadata(globalMetadata.getHashtable());
}
}