001    /****************************************************************
002     * Licensed to the Apache Software Foundation (ASF) under one   *
003     * or more contributor license agreements.  See the NOTICE file *
004     * distributed with this work for additional information        *
005     * regarding copyright ownership.  The ASF licenses this file   *
006     * to you under the Apache License, Version 2.0 (the            *
007     * "License"); you may not use this file except in compliance   *
008     * with the License.  You may obtain a copy of the License at   *
009     *                                                              *
010     *   http://www.apache.org/licenses/LICENSE-2.0                 *
011     *                                                              *
012     * Unless required by applicable law or agreed to in writing,   *
013     * software distributed under the License is distributed on an  *
014     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
015     * KIND, either express or implied.  See the License for the    *
016     * specific language governing permissions and limitations      *
017     * under the License.                                           *
018     ****************************************************************/
019    
020    
021    package org.apache.james.jspf.core;
022    
023    /**
024     * This interface represent all the macros which can be used in SPF-Records.
025     * Read more here : http://www.ietf.org/rfc/rfc4408.txt Section 8
026     *  
027     */
028    public interface MacroData {
029    
030        /**
031         * Get current-senderpart (l)
032         * 
033         * @return current-senderpart
034         */
035        public String getCurrentSenderPart();
036    
037        /**
038         * Get responsible-sender (s)
039         * 
040         * @return responsible-sender
041         */
042        public String getMailFrom();
043    
044        /**
045         * Get sender-domain (h)
046         * 
047         * @return sender-domain
048         */
049        public String getHostName();
050    
051        /**
052         * Get current-domain (d)
053         * 
054         * @return current-domain
055         */
056        public String getCurrentDomain();
057    
058        /**
059         * Get inAddress (v)
060         * 
061         * @return inAddress
062         */
063        public String getInAddress();
064    
065        /**
066         * Get clientDomain (p)
067         * 
068         * @return clientDomain
069         */
070        public String getClientDomain();
071    
072        /**
073         * Get senderDomain (o)
074         * 
075         * @return senderDomain
076         */
077        public String getSenderDomain();
078    
079        /**
080         * Get sending-host (i)
081         * 
082         * @return sending-host
083         */
084        public String getMacroIpAddress();
085    
086        /**
087         * Get timeStamp (t)
088         * 
089         * @return timeStamp
090         */
091        public long getTimeStamp();
092    
093        /**
094         * Get readableIP (c)
095         * 
096         * @return readableIP
097         */
098        public String getReadableIP();
099    
100        /**
101         * Get receivingDomain (r)
102         * 
103         * @return receivingDomain
104         */
105        public String getReceivingDomain();
106    
107    }